2010-04-03 141 views
3

我需要通過FTP和SFTP將多個文件從目錄上傳到服務器。 我已經用python,paramiko和線程解決了SFTP的這個任務。但是我爲FTP做這件事有問題。我試圖使用ftplib for python,但它似乎不支持線程,並且我一個接一個地上傳所有文件,這很慢。多線程FTP上傳。可能嗎?

我想知道是否可以使用FTP協議進行多線程上傳而不創建單獨的連接/授權(需要太長時間)?

解決方案可以使用Python或PHP。也許CURL?會感激任何想法。

回答

1

除了through之外的另一種併發方法是異步io。對於Python,異步網絡的標準工具包是Twisted

看看這個FTP客戶端example Twisted。

2

有一個創建asynchronous FTP client的功能,但基本上FTP協議允許同步命令。要允許並行下載/上傳,您需要打開多個FTP連接。這可以通過ftplib和線程完成。

0

您可以在多個命令提示符/ shell中運行該腳本(只需確保每個文件僅由所有不同的腳本處理一次)。我不知道這個快速和骯髒的伎倆將提高傳輸速度雖然..