Как перенести папку с Paramiko

Я пытаюсь загрузить папку размером 80 МБ с удаленного сервера на свой локальный компьютер. Я знаю, что пути к файлам правильные, и я знаю, что папка существует. Мой текущий рабочий код (работает с одним файлом) таков:

import paramiko

def begin():
    tran=paramiko.Transport(('dns.server.name', 22))
    tran.connect(username='**',password='**')
    sftp=paramiko.SFTPClient.from_transport(tran)
    sftp.get('/remote/file/path', '/local/file/path')
    sftp.close()
    tran.close()

Я пытался добавить sftp.listdir, но боюсь, что не могу найти достаточно документации по этому вопросу, чтобы сделать его понятным или удобным для меня. Есть ли что-то похожее на os.walk?

Мой вопрос: как мне загружать небольшие папки по протоколу ssh2, доступному в paramiko?


person Fuhton    schedule 07.08.2012    source источник
comment
Ага. Спасибо что подметил это.   -  person Fuhton    schedule 08.08.2012


Ответы (1)


Что я предлагаю вместо передачи всей папки, вы должны сначала создать временный сжатый файл tar на сервере программно и передать этот файл tar с помощью sftp по сети - это может уменьшить пропускную способность / будет работать быстрее и будет менее подверженным ошибкам.

person shahjapan    schedule 08.08.2012