2017-04-10 98 views
0

一位客戶向我們提供ftp-access來下載PDF文件。FTP:如何知道遠程ftp服務器上的文件是否完整

不幸的是,我不知道遠程文件是否準備好下載。

此命令行工作:

ncftpget -u user -p pwd foo.example.com import created/*pdf 

但我是怕的文件是不完整的。我不想下載遠程站點上未完全創建的文件。

客戶端和服務器在Linux上運行。文件鎖定不可用。

只爲記錄。我們從ftp切換到http。到目前爲止,我們使用ftp,但現在我們使用一個簡單的工具來上傳文件通過http:tbzuploader

+1

可能的重複[如何檢測文件通過FTP上傳](http://stackoverflow.com/questions/29238153/how -to-detect-that-a-file-is-being-uploaded-ftp) –

回答

0

我用ftputil實現這個變通辦法:

  1. 連接到FTP服務器
  2. 列表中的目錄中的所有文件
  3. 調用的stat()上的每個文件
  4. 等待N秒
  5. 對於每個文件:再次調用stat()。如果結果不同,則跳過該文件,因爲它在最後幾秒內被修改。
  6. 如果stat()結果沒有差異,則下載該文件。

這整個ftp-fetching是舊的和過時的技術。我希望客戶下一次使用現代http API :-)

+0

您是否願意將此解決方案添加到http://stackoverflow.com/a/43339916/850848的其他答案中,以便將信息分散在不同的帖子中?並關閉這個問題重複? –

+1

@MartinPrikryl,好的。讓我們來結束我的問題。 – guettli

1

檢查文件的大小每5秒。不是那麼文件是完整的。

+0

是的,應該工作。無狀態的解決方案會更容易,但我想這根本是不可能的(除非你從ftp切換到一個漂亮的http API)。 – guettli

相關問題