我需要实现一个上传功能,可以从上次中断通过sftp继续。
我正在尝试paramiko。但我不能喜欢这个例子。有人可以给我一些建议吗?
祝你好运
答案 0 :(得分:1)
SFTP.open(mode='a')
以追加模式打开文件。首先,您可以调用SFTP.stat()
来获取文件的当前大小(在远程端),然后open(mode='a')
,然后向其添加新数据。
答案 1 :(得分:0)
根据whjm的建议,我编写了以下代码,它有效。希望可以帮助更多的人:
if filename in file_list:
stat = sftp.stat(remot_dir + filename)
f_local = open(local_dir + filename)
f_local.seek(stat.st_size)
f_remote = sftp.open(remot_dir + filename, "a")
tmp_buffer = f_local.read(100000)
while tmp_buffer:
f_remote.write(tmp_buffer)
tmp_buffer = f_local.read(100000)
f_remote.close()
f_local.close()
else:
f_local = open(local_dir + filename)
f_remote = sftp.open(remot_dir + filename, "w")
tmp_buffer = f_local.read(100000)
while tmp_buffer:
f_remote.write(tmp_buffer)
tmp_buffer = f_local.read(100000)
f_remote.close()
f_local.close()