Не удается загрузить папку в Sftp, используя pysftp - PullRequest
1 голос
/ 19 февраля 2020

Не уверен, почему это не работает, я пытаюсь загрузить весь каталог со своего локального диска в sftp, но вместо загрузки папки создается файл, который выглядит так: ". \ 20200131 \ doc1.txt"? Я был в этом в течение нескольких часов, я думаю, что чего-то не хватает

def upload_files_to_sftp():
    localpath = r"c:\test\" 
    remotepath = "/uploads/test_Unzipped"
    for root,dirs,_ in os.walk(r"c:\test"):
        for d in dirs:
            folders_to_upload = (os.path.join(root,d))
            print(folders_to_upload)
            with pysftp.Connection('mysftp', username='username', password='mypassword') as sftp:
                sftp.put_r(localpath , remotepath)

1 Ответ

0 голосов
/ 19 февраля 2020

Обычно сервер sftp также предоставляет доступ s sh.

Если у вас есть доступ s sh, вы можете:

(cd /source/dir && tar --create --sparse --one-file-system .) | ssh example.com 'cd /target/dir && tar xfp -'

... используя cygwin tar и с sh, например. IOW, это может быть легко уменьшено до однострочного в оболочке.

...