[英]Python: How to upload a file to SFTP via zip stream
我看到了一個示例如何將文件上傳到SFTP
import pysftp
srv = pysftp.Connection(host="www.destination.com", username="root",
password="password",log="./temp/pysftp.log")
with srv.cd('public'): #chdir to public
srv.put('C:\Users\XXX\Dropbox\test.txt') #upload file to nodejs/
# Closes the connection
srv.close()
但是,如何同時上傳和壓縮呢? 明確地說,我不想將其壓縮然后上傳,我想同時使用壓縮流制作它。
要通過pysftp傳輸文件,請執行以下操作:
import pysftp
import io
with io.StringIO("hello world!\r\n") as stream:
with pysftp.Connection("sftp.mywebsite.com", username="myuser", password="mypassword") as sftp:
with sftp.cd("myhome/uploads"):
sftp.putfo(stream, "hello.txt", confirm=False)
設置confirm
到False
會告訴pysftp 不驗證文件的長度。 如果您需要使用pysftp中的file_size
驗證文件的長度,那么您將需要說len(secondstream.read())
並復制流,因為讀取會消耗內存中的流,這意味着不會寫入任何數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.