我想将大型 zip 文件从 google 云存储桶上传到 SFTP 服务器,而不加载到内存和云功能中。
我正在使用 pysftp 进行 SFTP 传输。
with pysftp.Connection(host="SFTP Server", username='test', password='test', cnopts=cnopts) as sftp:
sftp.cwd("/tmp")
sftp.put("zip_file_from_google_bucket")
我们可以访问存储桶中文件的操作系统路径并提供文件路径sftp.put()
since gs://
路径将不会被识别sftp.put()
?
我们还有其他方法可以转移吗?
请指教。
首先,更好地使用Paramiko。 pysftp 已经死了。看pysftp 与 Paramiko。无论如何,以下内容都适用于 Paramiko 和 pysftp。
Combine 帕拉米科SFTPClient.open with GCS Blob.download_to_file:
client = storage.Client(credentials=credentials, project='myproject')
bucket = client.get_bucket('mybucket')
blob = bucket.blob('archive.zip')
with sftp.open('/sftp/path/archive.zip', mode="w+", bufsize=32768) as f:
blob.download_to_file(f)
或者,组合SFTPClient.putfo with Blob.open.
with blob.open("rb") as f:
sftp.putfo(f, '/sftp/path/archive.zip')
(未经测试,但至少应该给你这个想法)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)