我正在使用bash脚本通过Sftp将文件上传到目标服务器。
如果我确定上传的文件是完整上传的,sftp将不会返回任何内容或网络连接可能被破坏?
我发现在上传到服务器之前我可以获取文件的大小,然后我可以将它与服务器上文件的现有大小进行比较。
也许您可以提及其他更好的选择?
谢谢。
答案 0 :(得分:0)
许多下载软件的网站都会提供软件及其校验和。
我们可以使用相同的技术来检查我们的上传文件 上传文件及其校验和,在服务器端将文件的校验和与上传的校验和进行比较, 如果两者不匹配,你就会知道
答案 1 :(得分:0)
我认为获得尺寸是一个不错的选择。 我能想象的是什么:
客户方: - 将文件的大小及其md5放在一个文件中,如“.fileinfo” - 将fileinfo发送到服务器 - 将(有趣的)文件发送到服务器
服务器端: - 定期检查文件夹的文件(例如“watch ls”命令) - 如果存在“.fileinfo”,请读取它,并检查大小是否对应于同名的现有文件(不带“.filefome”)。如果大小对应,请执行文件的“md5sum”,并检查它是否对应。如果是,请将文件移动到最终目标文件夹,然后删除“.fileinfo”文件。如果不重申。
答案 2 :(得分:0)
测试sftp
的退出代码。如果它返回0
,您可以非常确定一切正常(假设您使用的是OpenSSH sftp
)。这仅适用于使用-b
开关(我假设您正在做的事情)。
SFTP协议允许checksum calculation,但我认为你不熟悉不支持OpenSSH(或任何一方或双方)。
要100%确定,您可以将文件下载并与原始文件进行比较。