0
私は自分のFTPに大きなファイルを持っており、Googleのクラウドストレージに書き込む必要があります。 私は最初にftpからローカルファイルにダウンロードし、ローカルファイルをリモートストレージに送信することを考えました。しかし、私はそれをローカルにダウンロードせずにやりたい は、これまでのところ私は、次のコードを思い付いた:ソース間のPythonストリームデータ
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