sftp.get(remotepath, localpath) #for sftp to localdrive
upload = client.folder(Folder_id).upload(localpath) #localdrive to box
使用Python,我正在将文件从SFTP服务器下载到本地驱动器,然后从本地驱动器下载到我的盒子。
是否可以使用Python直接从SFTP服务器将文件上传到Box,而无需将文件保存到本地驱动器?
我正在使用Paramiko和Box SDK。
答案 0 :(得分:2)
您可以使用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。