Загрузка файлов в Box напрямую с SFTP-сервера без сохранения промежуточного файла с использованием Python - PullRequest
1 голос
/ 20 февраля 2020
sftp.get(remotepath, localpath) #for sftp to localdrive
upload = client.folder(Folder_id).upload(localpath) #localdrive to box

Использование Python Я загружаю файлы с SFTP-сервера на локальный диск, а затем с локального диска в ящик.

Можно ли загрузить мои файлы в ящик напрямую с SFTP-сервера, используя Python без сохранения файла на локальном диске?

Я использую Paramiko и Box SDK .

1 Ответ

2 голосов
/ 20 февраля 2020

Вы можете использовать SFTPClient.open, чтобы открыть файл на SFTP-сервере, как если бы это был локальный файл. Возвращает файлоподобный объект. Затем вы можете использовать объект с Folder.upload_stream:

with sftp.open(remotepath, "rb") as flo:
    flo.prefetch()
    client.folder(folder_id).upload_stream(flo, file_name)

Для вызова SFTPFile.prefetch см .:
Чтение файла, открытого с помощью Python Метод Paramiko SFTPClient.open работает медленно .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...