paramiko可以从上次中断的点继续执行上传的功能

时间:2017-03-15 05:53:56

标签: python sftp paramiko

我需要实现一个上传功能,可以从上次中断通过sftp继续。

我正在尝试paramiko。但我不能喜欢这个例子。有人可以给我一些建议吗?

祝你好运

2 个答案:

答案 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()