アップロードとダウンロード

このページでは、オブジェクトのアップロードとダウンロードに関連するコンセプトについて説明します。任意の 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 クライアント ライブラリを使用する場合は、次の種類のアップロードとダウンロードを実行できます。

Ruby

Ruby クライアント ライブラリを使用する場合は、次の種類のアップロードとダウンロードを実行できます。

Terraform

Terraform を使用する場合は、単一リクエストのアップロードを実行できます。再開可能なアップロードは、アップロードされるファイルが 16 MiB を超えると自動的に行われます。

REST API

REST API を使用してアップロードとダウンロードを行う場合に使用可能なリクエスト エンドポイントの詳細については、リクエスト エンドポイントをご覧ください。

次のステップ