2017-04-19 1 views
0

大容量のファイルをアップロードしたい(同時に同時ユーザーがファイルをアップロードできる)、ユーザーごとに順次ファイルをアップロードすることができます。java/javascriptを使用して帯域幅テクニックを調整しながら、Javaで大きなサイズのファイルをアップロードしますか?

さらに、時間がかかる場合は、アップロードプロセスを中止したいと思います。

私はさまざまな記事や資料をオンラインで調査していますが、それについて研究していますが、

これは既に実装されている場合、いくつかの考えや洞察、最善のアプローチを提案できますか?

+0

大容量ファイルの基準 - ファイル> 50 MB以上800 MB – pjason

+0

試した内容を追加してください。それ以外の場合、質問は終了します。 –

答えて

0

私は過去にスロットルSFTPを実装しました。重要な点は、次の遅延時間が固定された単位時間あたりに受信されたバイト数によって決定される周期的なマイクロ遅延を伴うサーバ受信端での制御ループを作成することである。単位時間あたりのバイト数が必要以上に多い場合は、遅延を徐々に増やしてください。それよりも少ない読書をしている場合は、遅れを徐々に減らしてください。

また、1回のダウンロードの最大レートを決定するために、パラレルダウンロードの数を考慮する必要があります。残念なことに、そのコードは雇用主のために作られたので、私はそれを手元に置いていないか、いくつか重要なスニペットを提供します。

私は、この目的のためにopensshを戦略的に変更したことを思い出しています。修正するのはほんの一握りだった。

+0

私たちのrequirmentとして私たちはブラウザでファイルをアップロードし、帯域幅を制御するためにこのアップロードプロセスを抑制する必要があります。 Pls suggest – pjason

+0

ブラウザはファイルをサーバーの宛先に送信する必要があります。そのため、キーには受信側のスロットルがあります。受信側のどのソフトウェアがファイルを取得しているのか知っていますか?サーバだけでなく、いくつの並列アップロードが行われているか知ることができるので、各ブラウザから期待されるアップロードレートを減らすことができます。 – Jason

+0

サーバがパラレルアップロードを追跡することに同意します。ブラウザからファイルをアップロードしていて、アップロードが進行中か完了しているかどうか、また必要に応じて停止しているかどうかを確認する必要があります。サーバー側のスロットル、サーバー側に任意のapache cxf mtomまたはカスタムJavaコードを使用しましたか? – pjason

0

大規模なファイルサイズをアップロードするようにカスタマイズされています(fineuploaderのjavascriptライブラリを使用して、30 MBから1 GBまでの大きなファイルを処理するため)。 FineUploaderは、チャンクサイズを設定したり、一時停止を有効にしたり、アップロードを再開したり(ブラウザを閉じたり、進行させたところから続行、進行状況バーなど)、100%のオープンソースライブラリです。

サーバー側でカスタムサーブレット私たちのソリューションはjavaに基づいているので)、チャンクをアップロードするには、すべてのチャンクがアップロードされたときにそれらをマージします。

カスタマイズソリューション手順は以下の通り [* fineuploaderスクリプト内(eg.30MB用)設定さチャンクサイズ] 1.我々はファイルをアップロードし、fineuploaderスクリプトはサイズのチャンクの総サイズ 2の30メガバイトにファイルを分割チャンクがアップロードされます(すべてのチャンクがアップロードされます)。 3.すべてのチャンクがサーバ側にアップロードされると、ファイルにマージされます。

同様の要件がある場合は、ニックアップローダスクリプトライブラリをカスタマイズして使用することをお勧めします。

関連する問題