Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个脚本可以下载很多相当大的(20MB+)文件。我希望能够检查我在本地拥有的副本是否与远程版本相同。我意识到我可以使用修改日期和长度的组合,但是我可以使用更准确的东西(也可以通过 paramiko 获得)来确保这一点?理想情况下是某种校验和?
我应该补充一点,远程系统是 Windows,我只有 SFTP 访问权限,没有 shell 访问权限。
我遇到了类似的情况。我目前采用的解决方案是使用 item.st_size 将远程文件的大小与使用 .st_sizefor item in sftp.listdir_attr(remote_dir) 的本地文件的大小进行比较os.path.getsize(local_file)。当两个文件大约为 1MB 或更小时,此解决方案很好。然而,奇怪的事情可能会发生:当文件大约 10MB 或更大时,两个大小可能会略有不同,例如,一个是 10000 字节,另一个是 10003 字节。
for item in sftp.listdir_attr(remote_dir)
os.path.getsize(local_file)