制御下にないリモートftpサーバーから監視/ダウンロードするためのftpシステム設定があります。スクリプトはリモートFTPに接続し、サーバー上のファイルのファイル名を取得します。次に、そのファイルが既にダウンロードされているかどうかを確認します。ダウンロードされていない場合は、ファイルをダウンロードしてリストに追加します。
最近、リモートftp側の誰かが巨大な単一ファイル(> 1GB)をコピーすると、スクリプトがウェイクアップして新しいファイルを確認し、コピーされているファイルのダウンロードを開始するという問題が発生しました。
これを確認する最良の方法は何ですか?数秒待ってファイルサイズを取得し、ファイルサイズをもう一度確認して、ファイルサイズが増加しているかどうかを確認することを考えていました。増加していない場合は、ダウンロードします。ただし、時間が問題になるため、すべてのファイルセットを数秒待って、ファイルサイズが大きくなったかどうかを確認することはできません。
これを行うための最良の方法は何でしょうか。現在、すべてがpythons ftplibを介して行われていますが、前述の方法を使用する以外に、これをどのように行うことができますか。
繰り返しになりますが、リモートftpサイトを制御することはできません。
ありがとう。
UPDATE1:
名前を変更しようとするとどうなるか考えていました...ftpに対する完全なアクセス許可があるため、ファイルのアップロードが進行中の場合、名前変更コマンドは失敗しますか?
ここにはリアルオプションはありません...そうですか?
UPDATE2:転送が開始されると、テストしたftpのいくつかが自動的にスペースを割り当てるように見える興味深いものがあります。
たとえば、200MBのファイルをFTPサーバーに転送する場合。転送がアクティブな間、FTPサーバーに接続し、アップロード中にサイズを実行するとします。サイズは200mbです。ファイルは10%しか完成していませんが。
また、アクセス許可はランダムに設定されているようです。IISに付属のFTPサーバーは、ファイルのコピーが完了した後にアクセス許可を設定します。他の古いftpサーバーのいくつかは、ファイルを送信するとすぐにそれを設定します。
:'(