コンテンツにスキップ

主要サービスのアップロード上限一覧

Webサービスやクラウドストレージごとのファイルアップロード上限サイズをまとめました。開発時のバリデーション設計や境界値テストの参考にご活用ください。

メール・メッセージサービス

メールやチャットサービスでは、添付ファイルのサイズに制限が設けられています。特にGmailやOutlookは25MB制限が標準的ですが、実際にはBase64エンコードによるオーバーヘッドがあるため、実質的な上限はやや小さくなります。

サービス 上限サイズ 備考 テスト用ファイル
Gmail 25MB 25MB超はGoogle Driveリンクに自動変換 24.9MB / 25MB / 25.1MB
Outlook 25MB Microsoft 365では最大150MB(管理者設定) 24.9MB / 25MB / 25.1MB
LINE 50MB 動画は5分まで、画像は送信時に圧縮される 50MB
Discord(無料) 25MB Nitroなら最大500MBまで 24.9MB / 25MB / 25.1MB
Discord Nitro 500MB Nitro Basic は50MBまで -
Slack 1GB 全プランで1GBまでアップロード可能 -

SNS・メディアプラットフォーム

SNSでは画像・動画のアップロードに形式やサイズの制限があります。特に画像は自動的にリサイズ・圧縮されるケースが多いため、元のファイルサイズがそのまま保持されるとは限りません。

サービス 上限サイズ 備考
Twitter / X(画像) 5MB(PNG/JPG) GIFは15MB、動画は512MB(ブラウザ経由)
Instagram 8MB(画像) 動画は4GB、リールは4GB
Facebook 10MB(画像) 動画は10GB

CMS・Webアプリケーション

WordPressをはじめとするCMSでは、PHPの設定やサーバー側の制限により、デフォルトのアップロード上限が決まっています。設定変更の詳細はWordPressのアップロード上限を変更する方法をご覧ください。

サービス / CMS デフォルト上限 備考 テスト用ファイル
WordPress 2MB〜10MB PHPとサーバー設定に依存。変更可能 9.9MB / 10MB / 10.1MB
Shopify 20MB 画像・動画・ファイル共通 -

クラウドストレージ・開発サービス

クラウドストレージや開発者向けサービスでは、一般的に大容量のアップロードに対応していますが、単一リクエストでのサイズ上限とマルチパートアップロード時の上限が異なる場合があります。

サービス 上限サイズ 備考
AWS S3 5GB(単一) / 5TB(マルチパート) 100MB以上はマルチパート推奨
Google Drive 5TB ストレージプランの空き容量が必要
Dropbox 2GB(Web) / 50GB(デスクトップアプリ) APIでは350GBまで対応
GitHub 100MB(ファイル単位) Git LFSで最大5GBまで対応。リポジトリ全体は5GB推奨
Cloudflare(Free) 100MB Proプランは500MB、Businessは500MB、Enterpriseは無制限

アップロード上限のテスト方法

サービスのアップロード上限を正確にテストするには、境界値テストが有効です。上限のちょうど手前、ちょうど、直後の3パターンのファイルでテストすることで、バリデーション処理の正確性を検証できます。

DevLabでは、各サイズに対応したしきい値テスト用ファイルをバイト単位の正確なサイズで提供しています。MD5・SHA-256ハッシュ値も併記しているため、ダウンロード後の整合性確認にもご利用いただけます。

注意事項

  • 上記の制限値は2024年時点の情報です。各サービスの最新仕様をご確認ください。
  • Base64エンコードを使用する場合、実際に送信できるファイルサイズは約75%になります(4/3倍のオーバーヘッド)。
  • 同一サービスでもプランやAPI経由かブラウザ経由かで上限が異なる場合があります。
  • ネットワーク環境やタイムアウト設定により、上限以下でもアップロードに失敗する場合があります。

❓ よくある質問

表の上限は添付とリンク共有のどちらの値ですか?
添付そのものの上限です。多くのサービスは上限を超えるとクラウド保存へ切り替えてリンクを送る方式に自動で移行し、その場合の実質的な上限はストレージ側の値になります。Gmail の 25MB を超えると Google ドライブのリンクになるのが代表例で、受信側が開けるかはリンクの共有設定に依存します。
自社サービスの上限は何を基準に決めればいいですか?
想定する最大ユースケースの実測値を 2 倍したあたりが出発点です。スキャン PDF 数百ページなら 50MB、記事本文なら数百 KB といった具合に、実際のファイルを測ってから決めてください。決めたあとは PHP の upload_max_filesize と post_max_size、nginx の client_max_body_size、タイムアウトをすべて同じ前提に揃えないと、どこか一箇所で詰まります。
上限ちょうどのファイルは通りますか?
通らないことが多いです。multipart/form-data では境界文字列とヘッダの分だけ本文が元のファイルより数百バイト大きくなるため、ファイル自体が上限ちょうどでもリクエスト全体は超えます。上限判定は本文サイズで行われるので、実装側の上限はファイル上限より少し大きく取り、境界値のテストファイルで実際に確認してください。