Saya perlu menerapkan fungsi pengunggahan yang dapat melanjutkan dari titik gangguan terakhir melalui sftp.

Saya mencoba paramiko. tapi saya tidak bisa menyukai contoh apa pun tentang ini. Adakah yang bisa memberi saya beberapa saran?

Salam Hormat

0
Howardyan 15 Maret 2017, 08:53

2 jawaban

Jawaban Terbaik

SFTP.open(mode='a') membuka file dalam mode menambahkan. Jadi pertama-tama Anda dapat memanggil SFTP.stat() untuk mendapatkan ukuran file saat ini (di sisi jarak jauh) dan kemudian open(mode='a') dan menambahkan data baru ke dalamnya.

1
pynexj 15 Maret 2017, 10:46

Berdasarkan saran whjm, saya menulis kode berikut, ini berfungsi. berharap dapat membantu lebih banyak orang:

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()
0
Howardyan 16 Maret 2017, 04:31