0

我在我的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。

回答

1

我認爲你可以使用rclone來實現你想要的,不用python。如果你必須使用Python,也許他們提供了一個包裝,或者你可以使用subprocess模塊。

+0

感謝您提供rclone,但我需要在純python中完成,而不需要子進程。 – tsh