-2

一部のファイルをネットワーク共有 (\\physicalfileserver\files\) に保存するエンタープライズ アプリケーションがあります。アプリケーションは、LAN 経由で接続された複数の物理サーバーに分散された複数のアプリケーション サーバー インスタンスにインストールされるため、ネットワーク共有を使用する必要があります。場合によっては、ネットワーク共有自体に特定のファイルのコピーを作成し、同じディレクトリ (同じネットワーク共有上) に別の名前で保存するか、新しいディレクトリ (同じネットワーク共有上) に保存する必要があります。ファイルのコピーを作成する最も効率的な方法は何ですか? ソース ファイルと宛先ファイルが同じサーバー上にあるため、ネットワーク上に IO トラフィックを作成したくありません。また、ファイルのコピーを作成するのにかかる時間も増加します。しかし、これは私がこれまで見てきたものからは難しいです。

  • 入力ストリームでファイルを読み取り、別のパス/名前で出力ストリームを介してサーバーに書き戻します。
  • Apache Commons の FileUtils.copyFile()。
  • JAVA の NIO Channels ライブラリ (java.nio.channels.FileChannel.transferFrom())

ただし、それらはすべて、プログラムを実行しているサーバーにファイルをコピーしてから、データをネットワーク共有にコピーして戻すように見えますが、これは実際には必要ありません。

この状況を処理するための最良のアプローチとして、教祖は何を提案できますか? いくつかの制限により、JAVA 1.5/1.6 しか使用できませんが、より高い Java バージョンを使用する提案も受け付けています。

アプリケーションは Windows 2008 サーバーにインストールされ、ネットワーク共有も Windows 2008 サーバーに存在します。

ありがとう

4

1 に答える 1

0

ネットワーク トラフィックを回避したい場合は、ファイルをローカルにコピーできるようにする小さなサーバーを Java で作成できます (これはファイル サーバー自体で実行されます)。誰かがそれを使用してシステム ファイルを上書きできる場合、これが大きなセキュリティ リスクをもたらす可能性があるため、これを保護することは非常に重要です。

于 2013-01-08T03:09:31.147 に答える