【发布时间】:2023-12-26 12:04:01
【问题描述】:
我正在编写一个应用程序,其要求是将文件从远程 SFTP 服务器传输到本地计算机,反之亦然。在文件传输过程中,我想确保在传输过程中没有数据包丢失和损坏。所以想法是在传输之前对远程文件(驻留在 sftp 服务器中)运行 MD5 校验和,然后开始传输过程.传输完成后,在本地文件上运行 md5 并比较两个校验和。
我正在使用 JSCH 连接到 sftp 服务器,代码在 java 中。但我不知道如何在驻留在 SFTP 服务器中的远程文件上运行 md5。我的代码必须先对远程文件执行 MD5转移发生。请知道如何完成此操作。
【问题讨论】:
-
SFTP 为您处理完整性检查,因此您的任务毫无意义。
-
@EugeneMayevski'EldoSCorp 这是真的。只需注意文件在读/写时可能会损坏,因此在 SSH 通道之外。不过不太可能。
-
@MartinPrikryl 是的,文件可能在任何地方损坏,这使得问题与 SSH/SFTP 无关 :)
-
当然,但问题是关于通过 JSCH 获取 MD5 校验和,什么仍然相关。例如,SFTP 有一个用于获取校验和的 API。不幸的是,JSCH 和服务器可能都没有实现。