源之间的蟒蛇流数据
问题描述:
我在我的FTP中有一个大文件,我需要将它写入谷歌云存储。 我的第一个想法是将它从ftp下载到本地文件,然后将本地文件传输到远程存储。但我宁愿在不下载本地文件的情况下执行此操作。 到目前为止,我想出了下面的代码:源之间的蟒蛇流数据
from ftplib import FTP
import io
ftp = ftp = FTP('example.com')
ftp.voidcmd('TYPE I')
sock = ftp.transfercmd('RETR file.csv')
raw = io.BytesIO()
file = io.BufferedRandom(raw)
blob = bucket.blob('blobname.csv', chunk_size=262144) # gcs blob
blob.upload_from_file(file, content_type='text/csv', rewind=True)
,但我得到:
Traceback (most recent call last):
File "/home/tsh/example.py", line 65, in <module>
file = io.BufferedRandom(raw)
io.UnsupportedOperation: File or stream is not seekable.
有没有办法从ftp到云存储管道数据(或任何其他远程资源),而无需下载它到本地机器?我正在使用python 3.6。
感谢您提供rclone,但我需要在纯python中完成,而不需要子进程。 – tsh