python - 使用 Python 直接从 SFTP 服务器上传文件到 Box,无需保存中间文件

标签 python file-upload sftp paramiko

sftp.get(remotepath, localpath) #for sftp to localdrive
upload = client.folder(Folder_id).upload(localpath) #localdrive to box

我使用 Python 将文件从 SFTP 服务器下载到本地驱动器,然后从本地驱动器下载到我的盒子。

是否可以使用 Python 直接从 SFTP 服务器将我的文件上传到盒子,而不将文件保存到本地驱动器?

我正在使用 Paramiko 和 Box SDK .

最佳答案

您可以使用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 调用,请参阅:
Reading file opened with Python Paramiko SFTPClient.open method is slow .

关于python - 使用 Python 直接从 SFTP 服务器上传文件到 Box,无需保存中间文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60320035/

相关文章:

python - 如何将特定信息从 html 提取到 python webscraper?

Visual Studio Code 中的 Python 3.x 类型提示

python - Pygame 卡住并且对按键或尝试关闭窗口没有反应

php - 上传时避免用下划线替换文件名中的空格

c# - 使用 SSH.Net 下载和返回非阻塞数据流

python - RandomForest,如何选择最优的n_estimator参数

java - 我想使用java SE7中的java SE6来使用这段代码

javascript - 为什么 Javascript 上传 block 大小会因浏览器而异?

c# - 如何在Windows xp sp3中创建SFTP服务?

C - libssh 和 sftp - 客户端/服务器 - 创建 sftp session 挂起