コンテンツへスキップ
HexaTransfer
ブログへ戻る
ファイル転送

バッチアップロード最適化:フォルダをより速く転送

バッチアップロードを最速に最適化。並列アップロード技術と一括転送を高速化する設定を解説。

最速のバッチアップロード戦略は、フォルダを単一の .zip(ストアモード、無圧縮)に詰めて、何千もの小さなオブジェクトの代わりに一つの大きなオブジェクトをアップロードすることです。 500 KB の .jpg ファイルが 5,000 個あるフォルダは合計 2.5 GB ですが、個別にアップロードすると各小ファイルが TLS と HTTP のオーバーヘッドをフルに支払うため、単一の 2.5 GB アーカイブとして送るより 10〜20 倍時間がかかります。並列アップロードをサポートするサービス( HexaTransfer 、 Dropbox 、 rclone )は、大きなチャンクが多い場合にさらに効果的です。重複ファイルの排除、 .DS_Store や Thumbs.db などの不要ファイルのスキップを加えれば、素朴な方法の何分の一かの時間で完了します。

何千もの小ファイルが遅い理由

HTTPS 経由のすべてのファイルアップロードには固定オーバーヘッドがあります。 TLS ハンドシェイク(接続キープアライブで再利用可能)、 HTTP ヘッダー(約 500 バイト)、サーバー確認応答、受信側のディスクフラッシュです。 50 KB ファイルでは、このオーバーヘッドがファイル自体のサイズを超えることがあります。 500 KB ファイルでは、オーバーヘッドが回線上の総バイトの 10〜20% を占めます。

これを 5,000 ファイルに掛けると、ペイロードではなくメタデータに時間の半分を費やすことになります。多くの小ファイルがある大きなフォルダを外部ストレージにコピーすると、同等サイズの単一アーカイブをコピーするより常に遅くなるのはこのためです。

まずアーカイブ、次にアップロード

フォルダアップロードの最大の高速化策は、最初に一つの .zip 、 .7z 、または .tar ファイルに詰めることです。既に圧縮済みの内容(写真、動画、 Office ドキュメント)にはストアモード(無圧縮)を使います。 CPU コストをかけずにまとめの恩恵を得られます。テキスト中心のフォルダ(ログ、ソースコード)にはデフォルト圧縮を使えば、その上で実質的なサイズ節約が得られます。

コマンド例。

  • macOS/Linux : 無圧縮には zip -0 -r archive.zip folder/、デフォルト圧縮には zip -r archive.zip folder/
  • Windows : フォルダを右クリック → 送る → 圧縮( zip 形式)フォルダー。または 7-Zip でアーカイブに追加 → 圧縮レベル → 格納
  • 大きなフォルダ: tar -cf archive.tar folder/(無圧縮)または tar -czf archive.tar.gz folder/( gzip )

アーカイブ前に重複排除

フォルダは時間とともに重複ファイルを蓄積します。デザインプロジェクトには「final_v2.psd」「final_v2_COPY.psd」「final_v2_BACKUP.psd」があり、内容は同じで名前だけ違います。 20 GB フォルダが重複排除後に 12 GB に縮むことは日常的にあります。

ツール: fdupes (Linux)、 rmlint (Linux/macOS)、 Duplicate File Finder (macOS)、 dupeGuru (クロスプラットフォーム)。ほとんどはファイルをハッシュ化し、同一ハッシュにフラグを立てて動作します。結果を確認し、重複を削除してからアーカイブします。

写真家の場合、 Lightroom のカタログが既にユニークな写真を追跡しています。キャプチャフォルダ全体ではなく、フラグ付きセレクトのみをエクスポートしましょう。

OS の不要ファイルをスキップする

すべての macOS フォルダは .DS_Store ファイル(隠しメタデータ)を蓄積します。すべての Windows フォルダは Thumbs.db を持ちます。 Linux の .directory ファイルは KDE から現れます。これらは受信者にとって何の役にも立たず、アーカイブのファイル数を膨らませます。

macOS で ZIP 化する際。

zip -r archive.zip folder/ -x "*.DS_Store" "__MACOSX"

Windows の 7-Zip では、 UI またはコマンドラインで -xr!Thumbs.db -xr!desktop.ini のように除外パターンを指定します。 rsync 形式の転送では --exclude='.DS_Store' --exclude='Thumbs.db' を使います。

並列チャンクアップロード

サービスがサポートする場合、並列 HTTP ストリームは高遅延パスで単一 TCP 接続では満たせない帯域幅を活用できます。 tus.io プロトコルは同時チャンクアップロードをサポートしており、 tus-js-client ライブラリはデフォルトで 1 同時リクエストですが設定で増やせます。

大陸間アップロード(例:日本のユーザーから欧州サービスへ)では、並列処理が実効スループットを 2〜3 倍にします。ローカルアップロードでは単一ストリームでアップロード帯域幅を飽和させるのが通常で、並列処理は追加効果がほぼありません。

チャンクサイズの調整

大きなチャンクはリクエストあたりのオーバーヘッドを減らし、小さなチャンクはネットワーク障害から速く回復します。接続状況に応じた目安は以下のとおりです。

| 接続タイプ | 推奨チャンクサイズ | |---|---| | ギガビット光回線、有線 | 32〜64 MB | | 家庭用光回線、 Wi-Fi | 10〜20 MB | | オフィスブロードバンド | 10 MB | | モバイル 4G/5G | 2〜5 MB | | 不安定/ホテル Wi-Fi | 1〜2 MB |

ほとんどの一般向けサービスは合理的なデフォルト(5〜10 MB)を選んで設定を公開しません。コマンドラインツール( rclone 、 aws s3 cp 、 gsutil )では正確に調整できます。

フォルダ構造は総ボリュームより重要ではない

よくある誤解として「深くネストされたフォルダはアップロードを遅くする」がありますが、そうではありません。アーカイブ形式は深さに関係なくパスを文字列ヘッダーに平坦化します。 3 階層深い 10,000 ファイルのフォルダは、アーカイブ後は 10 階層深い 10,000 ファイルのフォルダと同様にアップロードされます。

重要なのは個々のファイル数です。フラットな 10,000 の小ファイルもネストされた 10,000 の小ファイルも同じ問題です。アーカイブ化してください。

コンテンツタイプ別の圧縮戦略

  • 混在写真( .jpg / .heic ): ストアモード .zip 。 CPU の無駄なし。
  • RAW 写真( .cr3 / .arw / .nef ): ストアモード .zip 。内部で既に圧縮済み。
  • 動画プロジェクト( .mp4 、 .mov 、 .prproj ): ストアモード .zip 。
  • ソースコード: 最大比率には LZMA2 付き 7z 。
  • ログファイル: LZMA2 付き 7z 。 10〜20 倍の削減を期待。
  • PDF : ストアモード。ほとんどの PDF は内部圧縮済み。
  • 混在 Office ドキュメント( .docx 、 .xlsx ): ストアモード。内部で既に ZIP 圧縮された XML 。
  • データベースダンプ( .sql ): LZMA2 付き 7z 。圧縮効果が高い。

バックグラウンドとフォアグラウンド

ブラウザベースのアップロードはタブを開いたままにする必要があります。タブを閉じると通常アップロードが終了します。 Service Worker バックエンドのバックグラウンドアップロードを提供するサービスもありますが、モバイルブラウザや一部の企業向けブラウザプロファイルでは信頼性に欠けます。

100 GB 以上の大規模バッチアップロードにはデスクトップクライアントが優位です。 OS レベルのプロセスとして実行されるためです。 rclone は主要なクラウドへのマウントと同期を実現します。 Dropbox デスクトップクライアントはアップロードを確実にキューに入れます。ブラウザが苦手なノートパソコンの蓋閉じや Wi-Fi 切り替えにも耐えます。

10 GB 未満のバッチアップロードでは、 tus.io によるチャンクアップロードを持つ最新のブラウザベースサービスで十分対応できます。 HexaTransfer のクライアント側暗号化は適度な CPU オーバーヘッドを加えますが、現在のハードウェアでスループットに大きく影響しません。

大きすぎるバッチを分割する

バッチがサービスの転送あたり上限を超える場合、機械的にではなく論理的に分割しましょう。一ヶ月の撮影では、任意のバイト数分割よりも「日付別の写真」フォルダのほうがうまく機能します。受信者がボリューム .005 が欠けていないか心配する代わりに、各バッチが完全であることを確認できます(「3月1〜7日.zip」、「3月8〜14日.zip」)。

転送あたりの上限はないがセッション上限のあるサービスでは、複数アーカイブの逐次アップロードで同時アップロード上限への抵触を避けられます。

立ち去る前に確認する

大規模なバッチアップロードには「設定して放置」の誘惑があります。しかし、ノートパソコンを閉じる前に必ず確認しましょう。

  • アップロードページが「進行中」ではなく「完了」を表示しているか
  • 別のブラウザまたはシークレットウィンドウでリンクを開いて受信者の体験を確認
  • アーカイブが正しく開けるか(アップロード中の .zip 破損は稀ですが起こり得る)
  • 有効期限設定が意図したものと一致しているか

5 分の確認で、翌日「ファイル届きましたか?」という気まずいメールを送らずに済みます。

hexatransfer.comでお試しください — 無料、登録不要、最大10GB。

エンドツーエンド暗号化で大容量ファイルを安全に送信

エンドツーエンド暗号化で最大10GBのファイルを無料で転送。アカウント不要。ファイルはアップロード前にブラウザで暗号化されるため、他の誰にも読まれません。

ファイルを送信