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/