的Python:如何通过压缩流的文件上传到SFTP

问题描述 投票:0回答:1

我看到了一个example如何将文件上传到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()

但我怎么能上传,并在同一时间压缩呢?需要明确的是,我不希望压缩,然后上传它,我想让它在使用压缩数据流同时进行。

python stream zip
1个回答
0
投票

要通过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)

设置confirmFalse会告诉pysftp不验证文件的长度。如果您需要验证文件的长度与pysftp file_size,那么你将需要说len(secondstream.read()),复制流,因为从存储器读取表示没有数据将被写入消耗流。

© www.soinside.com 2019 - 2024. All rights reserved.