我們有一個ftp系統設置來監視/下載遠程ftp服務器,這些服務器不受我們控制。腳本連接到遠程ftp,並抓取服務器上文件的文件名,然後檢查是否已經下載了它的文件。如果尚未下載,我們下載該文件並將其添加到列表中。防止ftplib下載正在進行中的文件?
我們最近遇到了一個問題,遠程ftp端的某個人將複製到一個巨大的單個文件(> 1GB)中,然後腳本會醒來,看到一個新文件並開始下載正在複製的文件。
什麼是最好的檢查方法?我正在考慮抓取文件大小等待幾秒鐘,再次檢查文件大小,看看它是否增加了,如果沒有,我們再下載它。但是由於時間的關係,我們不能等待每個單獨的文件集幾秒鐘,看它的文件大小是否增加。
什麼是最好的方式去做這件事,目前一切都是通過pythons ftplib來完成的,除了使用前面提到的方法,我們怎麼能做到這一點。
再次讓我重申一下,我們對遠程ftp站點有0個控制權。
謝謝。
UPDATE1:
我就在想,如果我試圖將其重命名什麼......因爲我們對FTP完全權限,如果該文件的上傳過程中會重命名命令失敗?
我們在這裏沒有任何真正的選擇...我們呢?
UPDATE2: 這裏有一些有趣的東西我們測試過的ftps似乎在傳輸開始時自動分配空間。
E.g.如果我將200MB文件傳輸到FTP服務器。如果我連接到ftp服務器並在上傳過程中執行大小,則傳輸處於活動狀態。它顯示大小爲200mb。儘管該文件只有10%完整。
權限似乎也是隨機設置FTP自帶的IIS服務器設置文件完成複製後的權限。雖然其他一些較老的ftp服務器在您發送文件後立即設置它。
:'(
這不是一個壞的方法。 我喜歡它。 – UberJumper 2008-12-17 19:55:18