我正在使用pysftp 0.2.8将文件放在远程SFTP主机上。我想添加验证以确认文件已放在远程SFTP主机上。
pysftp.Connection对象上的put函数将引发以下错误
IOError –如果远程路径不存在
OSError –如果本地路径不存在
所以这与我要完成的工作不符。
现在,我通过将本地文件的st_size与远程文件的st_size进行比较来进行验证,但这并不“正确”。
local_file_size = os.stat(processed_file).st_size
remote_file_size = sftp.put(processed_file, confirm=True).st_size
if remote_file_attributes.st_size != local_file_attributes.st_size:
raise Exception('Discrepency between local file and remote file sizes. File might not have transferred, or only partially transferred.')
这是检查文件是否已传输的可靠方法吗?如果文件传输成功,是否有任何理由怀疑该文件可能丢失一个字节或更多?