簡體   English   中英

如何使用python和pysftp從一個SFTP傳輸到另一個SFTP

[英]How to stream from one SFTP to another SFTP using python and pysftp

我想將文件從一台SFTP服務器傳輸到另一台。

我不想在本地寫入,也不想將整個文件讀入內存。

Pysftp有getfoputfo方法。

但是getfo並沒有給您讀者-它只是給打開的fileobj寫入內容。

我本質上是想將getfo到一些可以讀取的文件中,因此我可以將其作為putfo的讀取器提供給目標。

偽代碼:

buffer_obj = SomeBufferedIOReader()
source_sftp.getfo('/remote/path.txt.gz', buffer_obj)
target_sftp.putfo('/target/path.txt.gz', buffer_obj) # streaming commences

如果我在bash中這樣做,我將創建一個fifo文件,異步寫入該fifo,然后從該文件上傳。 上載文件后,fifo將耗盡,並且過程將完成。 不確定如何在python中執行等效操作。

OK ... duh .... pysftp提供了一種open方法。

with source_sftp.open('source/path.txt.gz', 'rb') as f:
    f.prefetch()
    target_sftp.putfo('target/path.txt.gz', f)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM