このページでは、オブジェクトのアップロードとダウンロードに関連するコンセプトについて説明します。任意の MIME タイプのデータを 5 TiB までアップロードし、保存できます。
アップロード
Cloud Storage に次の方法でアップロード リクエストを送信できます。
単一のリクエストのアップロード。単一のリクエストでオブジェクトをアップロードするアップロード方式。このファイルは、ファイルの容量が小さく、接続に失敗しても全体をアップロードできる場合に使用します。単一のリクエストのアップロードに関するガイドについては、ファイルからオブジェクトをアップロードするまたはメモリからオブジェクトをアップロードするをご覧ください。
再開可能なアップロード。信頼性の高い転送を行うアップロード方式。これは、ファイルサイズが大きい場合に使用します。大半のアプリケーションでは、再開可能なアップロードが最適な選択肢となります。アップロードごとに 1 つの HTTP リクエストを送信するので、サイズの小さなファイルでも利用できます。再開可能なアップロードを使用してストリーミング転送を実行することもできます。これにより、不明なサイズのオブジェクトをアップロードできるようになります。
XML API マルチパート アップロード。Amazon S3 マルチパート アップロードと互換性のあるアップロード方法。ファイルは分割してアップロードされ、最後のリクエストで 1 つのオブジェクトにまとめられます。XML API のマルチパート アップロードを使用すると、各パートを並行してアップロードできるため、全体のアップロードを完了する時間を短縮できる可能性があります。
以下の基本的なアップロード タイプを使用すると、より高度なアップロード戦略が可能になります。
並列複合アップロード。ファイルをチャンク化し、チャンクを並列でアップロードするアップロード戦略。XML API マルチパート アップロードとは異なり、並列複合アップロードでは作成オペレーションを使用して、最終オブジェクトを複合オブジェクトとして保存します。
ストリーミング アップロード。データを最初にファイルに保存することなくアップロードできるアップロード方式。アップロードの開始時にアップロードするサイズの合計がわからない場合に使用します。
チャンク転送エンコードによるアップロード。ヘッダー
Transfer-Encoding: chunked
を含む単一リクエストのアップロード。アップロードを複数の連続したデータのチャンクとして送信できます。
アップロード サイズに関する考慮事項
再開可能なアップロードや XML API マルチパート アップロードではなく、シングル リクエスト アップロードを使用するときは、ネットワーク エラーが発生し、最初からやり直す必要が生じた場合に失うことになる時間を考慮してください。通常、接続が高速であれば、分割ファイルのサイズは大きくすることができます。
たとえば、障害発生時の許容待機時間が 30 秒だとします。
アップロードの平均速度が 8 Mbps であるローカル システムからアップロードする場合は、30 MB までのファイルには単一リクエストのアップロードを使用できます。
アップロードの平均速度が 500 Mbps のリージョン内サービスからアップロードする場合、ファイルの分割サイズは 2 GB 近くになります。
ダウンロード
Cloud Storage からのダウンロードは、いずれも基本的な動作は同じです。HTTP または HTTPS の GET
リクエストには、ダウンロードするオブジェクトの特定の部分を定義するオプションの Range
ヘッダーを含めることができます。
この基本的なダウンロード動作を使用すると、中断されたダウンロードを再開でき、スライス化されたオブジェクトのダウンロードやストリーミング ダウンロードなど、より高度なダウンロード方法を利用できます。
ツールごとのサポート
コンソール
Google Cloud コンソールを使用すると、次のタイプのアップロードとダウンロードを実行できます。
- お客様の代わりに自動的に管理される再開可能なアップロードを備える単一リクエスト アップロード
- シンプル ダウンロード(通常は認証済みブラウザでのダウンロード)
コマンドライン
Google Cloud CLI を使用すると、次の種類のアップロードとダウンロードを実行できます。
- お客様の代わりに自動的に管理される再開可能なアップロードを備える単一リクエスト アップロード
- ストリーミング アップロード
- 並列複合アップロード
- シンプル ダウンロード
- スライス化されたオブジェクトのダウンロード
- ダウンロードのストリーミング
クライアント ライブラリ
C++
C++ クライアント ライブラリを使用する場合は、次の種類のアップロードとダウンロードを実行できます。
C#
C# クライアント ライブラリを使用する場合は、次の種類のアップロードとダウンロードを実行できます。
Go
Go クライアント ライブラリを使用する場合は、次の種類のアップロードとダウンロードを実行できます。
- シンプル ダウンロード
- ダウンロードのストリーミング
- ファイルサイズに応じて、単一リクエストと再開可能なアップロード
- ストリーミング アップロード
Java
Java クライアント ライブラリを使用する場合は、次の種類のアップロードとダウンロードを実行できます。
Node.js
Node.js クライアント ライブラリを使用する場合は、次のタイプのアップロードとダウンロードを実行できます。
PHP
PHP クライアント ライブラリを使用する場合は、次の種類のアップロードとダウンロードを実行できます。
Python
Python クライアント ライブラリを使用する場合は、次の種類のアップロードとダウンロードを実行できます。
- シンプル ダウンロード
- スライス化されたオブジェクトのダウンロード
- ファイルサイズに応じて、単一リクエストと再開可能なアップロード
- XML API マルチパート アップロード
Ruby
Ruby クライアント ライブラリを使用する場合は、次の種類のアップロードとダウンロードを実行できます。
Terraform
Terraform を使用する場合は、単一リクエストのアップロードを実行できます。再開可能なアップロードは、アップロードされるファイルが 16 MiB を超えると自動的に行われます。
REST API
JSON API
JSON API を使用する場合は、次の種類のアップロードとダウンロードを実行できます。
XML API
XML API を使用する場合は、次の種類のアップロードとダウンロードを実行できます。
REST API を使用してアップロードとダウンロードを行う場合に使用可能なリクエスト エンドポイントの詳細については、リクエスト エンドポイントをご覧ください。
次のステップ
- Compute Engine インスタンスからオブジェクトを転送する。
- データを一般公開する。
- オブジェクトのメタデータを表示して編集する。
- Storage Transfer Service を使用して Cloud Storage にデータを転送する方法を確認する。