2009-05-18 4 views
5

私は、ファイルアップロードサービスの設計段階にあり、ユーザーは非常に大きなzipファイルをサーバーにアップロードするだけでなく、データベースをデータで更新することができます。ファイルは大きいので(約300MB)、ユーザーはアップロードに使用する帯域幅の量を制限することができます。また、転送を一時停止および再開できる必要があり、システムの再起動によって回復する必要があります。ユーザーはまた、ファイルをアップロードしてデータベースに変更を加える権限を持っていることを確認するために、MSSQLデータベースで認証される必要があります。再開可能なファイルのアップロード

私の質問は、これを行うには最高の技術は何ですか?私たちは必要な開発量を最小限に抑えたいと思いますが、私たちがこれを行うことを可能にする唯一のことは、Python、Java、またはC#のようなものでクライアントとサーバーのアプリケーションをゼロから作成することです。私たちにこれを可能にする既存の技術がありますか?

答えて

4

これを行うには、Googleにできるだけ多くのアップロードコントロールがあります。これにはいくつかありますdownload page

クライアントがFirefoxのFTPプラグインをインストールしたり、Firefoxのプラグインを自分で作成したりするのがもう一つの回避策ですが、FTPははるかに簡単に起動できます。

+2

このコメントは、私たちがftpサーバーにあらゆる種類のことをさせることを可能にするpyftpdlibモジュールを見つけるのを導きます。 http://code.google.com/p/pyftpdlib/ –

4

FTPで何が問題になっていますか?このプロトコルは再利用性をサポートしており、多くのクライアントがあります。

+0

データがサーバーにアップロードされたら、DBテーブルに行を追加する何らかの形式のスクリプトを実行する必要があります。ftpはサーバー上でシェルコマンドを実行できますか? –

+5

アップロード後に何かを実行する必要がある場合は、好みの言語でアプリケーションの一部としてftpサーバーを実装できます。 Pythonにはftplibがあります。また、ファイルイベントのアップロードディレクトリを監視して、スクリプトを起動することもできます。 – JimB

0

クライアント側では、サーバー側では、何でも(何の違いもありません)。

既存の技術はありません(FTPなどを使用する場合を除く)。

0

私は2つのより多くの可能性

  • マイクロソフトのバックグラウンドインテリジェント転送サービス(BITS)が見つかりました:

    を持っている:アップやダウンロード、大容量のファイル、暗号化された(VIS HTTPS)、再開可能に(手動での一時停止と再開、認証(https経由での再送信)、.NET用のラッパー、フォアグラウンドまたはバックグラウンドの優先度、など)。

    ない:帯域幅の調整、ファイルの検証(のみファイルサイズ)、圧縮

  • rsyncを

    を持っている:単方向の転送、大容量のファイル、一部のアップロードの履歴書(および停止を経由して一時停止します)、検証、暗号化、圧縮、使用可能なCライブラリ(SSH、stunnelを経由して)(マーティン・プールでlibrsync [1]、[2])

    ない :(だけcygwinのかcwrsyncを経由して)良い窓のcompability、商業的に使用可能な(GPL)

は、誰もがC#で他の何かを見つけましたか?

0

私は誰トレントファイルを言及していない驚いています。スクリプトにパッケージ化して、何かを実行させることもできます。

関連する問題