2011-01-28 7 views
1

と(FTP)移動ファイルデーモンを作成しています...私は私が作成したいユーザーは、ftp://uploads.mydomain.fooASP.NET(アルゴリズム)

にzipファイルをアップロードすることができます二つのドメインftp://mydomain.fooftp://uploads.mydomain.foo

を所有"デーモン"、私は特定の時間間隔でftp://uploads.mydomain.fooからftp://mydomain.fooにファイルを移動するASP.NETハンドラーと思います。

問題は、転送可能なファイルのリストには、ユーザーがアップロードを完了したファイルのみが含まれていることを確認できないということです。 (現在アップロードされているものではありません)。

どうすればいいですか?

UPDATE:デーモンは、実際には私のASPハンドラを呼び出すPleskのcronジョブです。

答えて

3

転送が開始されるとすぐに、サーバーでファイルサイズの情報を利用できます。したがって、オリジナルのファイル名を示すフラグORIGINAL-FILE-NAME.mov.PARTなどの一時ファイルを書き込んで、ファイルがまだサーバにアップロードされていることを伝えることができます。

他のプログラムがあるサーバーから別のサーバーにファイルを移動している場合、ORIGINAL-FILE-NAME.mov.PARTを検索して見つけます。元のファイル名の移動はスキップします。あなたの他のサーバーに移動します。

ファイルがアップロードされるとき、プログラムは一時的な.PARTファイルを探し出し、同時にアップロードされるファイルを積極的に作成します。あなたが積極的にORIGINAL-FILE-NAME.movをアップロードしているのであればそのディレクトリがそれでこれらのファイルの両方を持っています:

ORIGINAL-FILE-NAME.mov

ORIGINAL-FILE-NAME.mov.PART

アップロードが完了すると、プログラムはORIGINAL-FILE-NAME.mov.PARTを削除し、実際にアップロードされたファイルが準備完了となり、フラグがクリアされ、次のファイル転送プロセスで使用できるようになります。

これが私のやり方です。

+0

シンプルで賢いニース!そして、私は定期的にファイルの長さをチェックするタイマーを含むことを考えていた... – OrElse

+0

うん、私たちプログラマーは時々解決策を考える傾向があり、決してそこになかった問題から問題を作り出す傾向があります。しかし、私は私が助けることができてうれしいです:) – DoctorLouie