我在我的服务器上有一个问题:达到文件夹配额时,有人试图上传文件,他没有得到任何错误代码,他存放了一个0字节的文件。 所以我想知道是否有任何解决scheme(例如完整性检查)来检查文件是否传输良好。
不是真的。 最好的办法是通过ssh运行sha1sum远程文件,看看是否匹配本地文件的相同散列。
不同的工具如scp或rsync可能会在传输失败时返回错误代码。
sFTP协议有buildin错误检查。
客户创build一个零字节的文件,而不是给用户一个错误信息可能是由于3件事情:
有特定的SFTP协议扩展来计算文件散列 ,而这样的扩展被大多数客户端和服务器支持(这是很常见的)。 有关此类扩展的完整文档,请参阅此链接: https : //tools.ietf.org/html/draft-ietf-secsh-filexfer-extensions-00#section-3
无论如何,鉴于上述情况,我build议使用支持这种扩展的SFTP客户端,并在客户端和服务器上(在传输之后)计算文件的哈希码,并检查它们是否相同。 这是实现您的目标的最安全的方式。
sftp内置了完整性检查,所以我只能假设用户没有注意到这个错误。
与md5sum比较2个文件的校验和