FtpWebRequestを使用して FTP サーバーから画像をダウンロードするサービス.NETがあります。同じ FTP サーバーに画像を保存するカメラがあります。
私のサービスが画像を見て、カメラが同じ画像の保存を完了する前にダウンロードしようとすると、画像の「まだ保存されていない部分」が灰色 (破損) で表示されます。
質問:イメージをダウンロードする準備ができている (完全に保存されている) かどうかを確認するにはどうすればよいですか?
FtpWebRequestを使用して FTP サーバーから画像をダウンロードするサービス.NETがあります。同じ FTP サーバーに画像を保存するカメラがあります。
私のサービスが画像を見て、カメラが同じ画像の保存を完了する前にダウンロードしようとすると、画像の「まだ保存されていない部分」が灰色 (破損) で表示されます。
質問:イメージをダウンロードする準備ができている (完全に保存されている) かどうかを確認するにはどうすればよいですか?
送信サービスを制御できる場合は、マーカー ファイルを使用してこれを実装します。送信サービスが完了時に「.finished」ファイルを書き込むなどの場合、そのファイルが表示されるのを待つことができます。
ただし、カメラのソフトウェアを制御できないと思われます。特にインターネット接続が遅い場合、カメラがアップロードを完了したかどうかを検出する際にいくつかの問題があります。
ファイルサイズの変更を確認するのが最善の解決策だと思います。フォルダーを監視し、新しいファイルが表示されるかどうかを確認します。その後、ファイル サイズが 1 分間変化していない場合は、ファイルをダウンロードしても問題ありません。
カメラ ソフトウェアが画像を別のディレクトリに保存するようにします (Dir1 としましょう)。ファイルをこのディレクトリから別のディレクトリ (Dir2 とします) に移動してみてください。
ファイルがまだカメラ ソフトウェアによって開かれている場合、移動は失敗するはずなので、完了した画像のみが Dir1 から Dir2 に移動されます。
Dir2 から画像をダウンロードします。
大きなファイルの後に別の小さなファイルをアップロードします。小さなファイルを使用して「完全性」を確認します(または、その中のMD5も機能する可能性があります)。