Cloud Storage では、データをファイルに保存することなく、バケットからプロセスにデータをストリーミングできます。
ストリーミング時にチェックサム検証を使用する
データがアクセス可能になる前にチェックサム検証が必要な場合は、ダウンロードのストリーミングを使用しないでください。これは、ストリーミング ダウンロードで Range
ヘッダーが使用され、Cloud Storage がオブジェクト データのリクエスト部分にのみ適用されるチェックサムをレスポンスで返さないためです。
チェックサム検証は常に使用することをおすすめします。ダウンロードのストリーミングの完了後に行うこともできますが、ダウンロードの完了後に検証を行った場合、破損を確認して削除する前に、破損したデータがアクセスされる可能性があります。
必要なロール
ダウンロードのストリーミングに必要な権限を取得するには、バケットに対するストレージ オブジェクト閲覧者(roles/storage.objectViewer
)ロールを付与するよう管理者に依頼してください。
このロールには、ダウンロードのストリーミングに必要な権限が含まれています。必要とされる正確な権限については、必要な権限のセクションを開いてご確認ください。
必要な権限
storage.objects.get
この権限は、他の事前定義ロールやカスタムロールから取得することもできます。
バケットに対してロールを付与する手順については、バケットで IAM を使用するをご覧ください。
ダウンロードのストリーミング
次の例は、Cloud Storage オブジェクトからプロセスへのダウンロードを実行する方法を示しています。
コンソール
Google Cloud コンソールでは、ダウンロードのストリーミングはサポートされていません。代わりに Google Cloud CLI を使用してください。
コマンドライン
リンク先 URL にダッシュを使用して
gcloud storage cp
コマンドを実行し、データをプロセスに連結します。gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME - | PROCESS_NAME
ここで
BUCKET_NAME
は、オブジェクトを含むバケットの名前です。例:my_app_bucket
OBJECT_NAME
は、プロセスにストリーミングするオブジェクトの名前です。例:data_measurements
PROCESS_NAME
は、データをフィードするプロセスの名前です。例:analyze_data
Cloud Storage オブジェクトのデータを、sort などの Linux の標準コマンドにストリーミングすることもできます。
gcloud storage cp gs://my_app_bucket/data_measurements - | sort
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
JSON API
ストリーミング ダウンロードを行う場合は、次の点を考慮して、オブジェクトのダウンロード手順を行います。
ダウンロードを開始する前に、オブジェクトのメタデータを取得し、オブジェクトの世代番号を保存しておきます。元のリクエストに上書きされるときに異なる 2 世代のデータがダウンロードされないように、各リクエストにこの世代番号を含めます。
リクエストで
Range
ヘッダーを使用してオブジェクト全体の一部を取得し、それをローカル プロセスに送信します。オブジェクト全体が取得されるまで、オブジェクトの連続部分に対してリクエストを続行します。
XML API
ストリーミング ダウンロードを行う場合は、次の点を考慮して、オブジェクトのダウンロード手順を行います。
ダウンロードを開始する前に、オブジェクトのメタデータを取得し、オブジェクトの世代番号を保存しておきます。元のリクエストに上書きされるときに異なる 2 世代のデータがダウンロードされないように、各リクエストにこの世代番号を含めます。
リクエストで
Range
ヘッダーを使用してオブジェクト全体の一部を取得し、それをローカル プロセスに送信します。オブジェクト全体が取得されるまで、オブジェクトの連続部分に対してリクエストを続行します。
次のステップ
- アップロードのストリーミング
- 解凍トランス コーディングの詳細を確認する。
- アップロードとダウンロードの詳細を確認する。