web-dev-qa-db-ja.com

FTPアップロードプロセスを高速化する方法は?

それでは、なぜFTPアップロードが非常に遅いのでしょうか。私はクライアントとしてfilezilaを使用しています。

私は1000ファイルに10mbがあり、個々のファイルを300〜500kb/sでアップロードできますが、ファイルのアップロード時にキューイングプロセスが発生するため、アップロード全体が非常に遅くなります。すべての単一ファイルについて、クライアントは実際にアップロードする前に、あらゆる種類のコマンドと接続操作を実行します。

これらのコマンドをスキップする方法はありませんか?私はftpクライアント/アップロード/ウェブサイトなどに不慣れですこれは標準的な方法ですか?これはFTPアップロードが機能する方法ですか? 8-10 mbで20分待って退屈しませんか

100 MB以上を効率的にアップロードするにはどうすればよいですか?

7
Cristian

悲しいことに、これがFTPの機能です。多数の小さなファイルを効率的に転送するには、ローカルにアーカイブし、アーカイブ全体をftp経由で送信してから、リモートマシンでファイルをアーカイブ解除するか、クライアントが一度に10個のファイルをアップロードする同時アップロードをオンにします。これは、アップロードリンクを完全に飽和させるのに役立ちます。

9
Darth Android

ファイルをローカルで圧縮してから、サーバーで解凍してみましたか?そうすれば、1つの小さな(より)ファイルを転送するだけで済みます。

該当する場合は、前回のアップロード以降に変更されたファイルのみをコピーすることもできます。 rsync(sshアクセスがある場合)やrobocopy(Windowsサーバーの場合)などのツールがこれを行うのに役立ちます。

2
Sam Johnson

私は Auto FTP Manager を使用します。複数の同時FTP転送を実行するため、帯域幅リンク全体を使用できます。

Auto FTP Managerを使用すると、FTP転送のスケジュールと自動化を簡単に行うことができます。自動FTPマネージャーを使用して任意のFTPサーバーに接続し、ファイルを自動的にアップロードおよびダウンロードします。ワークフローを計画および自動化します。 PCをスケジュールに従って、PCからFTPサーバー、PCからPC、FTPサーバーからFTPサーバーにファイルを自動的に移動または同期させます...

...自動FTPマネージャーはマルチスレッドであるため、複数のFTPサーバーへの接続を同時に開くことができます。プログラムは、他のタスクで作業している間、バックグラウンドでファイルを転送できます。

1
adam0718

これは古い投稿であり、FTPはバイトの送信をTCPに依存しているため、アプリケーション層でできることはあまりありません。ただし、いくつかのことがあります。

  1. 上記のように同時アップロードを有効にします(TCPが各接続を「ランプアップ」するのに時間がかかるため、これを並行して行う方が効率的です)。これにより、より多くの帯域幅を利用できます)
  2. 上記のようにファイルをアーカイブします(これも、ファイルごとに個別にではなく、TCPが時間の経過とともに増加するため)
  3. チェックアウト SuperTCP :それは(完全な開示)私が最適化するビルドを支援している新製品ですTCPアップロード、これはFTPが多くの場合より速く進むのを助けることができますベータ版を間もなくリリースしますので、テストにご協力ください。
1
ryno2019