Cloud Storage はオブジェクトのストリーミング読み取りをサポートしています。これにより、アプリケーションやプロセスは、データのコピーをローカル ディスクや永続ストレージに保存することなく、ネットワーク接続を介してオブジェクトのバイトストリームをリアルタイムで消費できます。
オブジェクトをダウンロードしてローカル ファイル システムに保存する場合は、オブジェクトをファイルとしてダウンロードするをご覧ください。
ストリーミング読み取り時にチェックサム検証を使用する
データ処理の前にチェックサム検証が必要な場合は、ストリーミング読み取りを使用しないでください。通常、ストリーミング読み取りでは HTTP 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 に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
Rust
REST API
JSON API
ストリーミング読み取りを行う場合は、次の点を考慮して、オブジェクトのダウンロードの手順を行います。
読み取りを開始する前に、オブジェクトのメタデータを取得し、オブジェクトの世代番号を保存しておきます。元のリクエストに上書きされるときに異なる 2 世代のデータが読み取られないように、各リクエストにこの世代番号を含めます。
リクエストで
Rangeヘッダーを使用してオブジェクト全体の一部を取得し、それをローカル プロセスに送信します。オブジェクト全体が取得されるまで、オブジェクトの連続部分に対してリクエストを続行します。
XML API
ストリーミング読み取りを行う場合は、次の点を考慮して、オブジェクトのダウンロードの手順を行います。
読み取りを開始する前に、オブジェクトのメタデータを取得し、オブジェクトの世代番号を保存しておきます。元のリクエストに上書きされるときに異なる 2 世代のデータが読み取られないように、各リクエストにこの世代番号を含めます。
リクエストで
Rangeヘッダーを使用してオブジェクト全体の一部を取得し、それをローカル プロセスに送信します。オブジェクト全体が取得されるまで、オブジェクトの連続部分に対してリクエストを続行します。
次のステップ
- アップロードのストリーミング
- 解凍トランス コーディングの詳細を確認する。
- オブジェクトの読み取りとダウンロードの詳細を確認する。