Cloud Storage ではオブジェクトの読み取りのストリーミングがサポートされています。これにより、アプリケーションやプロセスは、データをローカル ディスクや永続ストレージに保存することなく、ネットワーク接続を介してオブジェクトのバイトストリームをリアルタイムで消費できます。
オブジェクトをダウンロードしてローカル ファイル システムに保存する場合は、代わりに ファイルをダウンロードするをご覧ください。
読み取りのストリーミング時にチェックサム検証を使用する
データ処理の前にチェックサム検証
が必要な場合は、読み取りのストリーミングを使用しないでください。読み取りのストリーミングでは通常、HTTP
Range ヘッダーが使用されるため、Cloud Storage は、オブジェクト データのリクエストされた任意の部分にのみ適用されるチェックサムを返しません。サーバーのチェックサムはオブジェクト全体を検証します。つまり、ストリーム全体が完了して検証される前に、破損したデータが読み取られて処理される可能性があります。
必要なロール
読み取りのストリーミングに必要な権限を取得するには、バケットに対するストレージ オブジェクト閲覧者(roles/storage.objectViewer)ロールを付与するよう管理者に依頼してください。
このロールには、読み取りのストリーミングに必要な権限が含まれています。必要とされる正確な権限については、必要な権限 のセクションを開いてご確認ください。
必要な権限
storage.objects.get
この権限は、他の事前定義ロールやカスタムロールから取得することもできます。
バケットに対するロールを付与する手順については、 バケットでの IAM ポリシーの設定と管理をご覧ください。
オブジェクトの読み取りをストリーミングする
次の例は、Cloud Storage オブジェクトからプロセスへのストリーミング読み取りを実行する方法を示しています。
Console
コンソール Google Cloud では、読み取りのストリーミングはサポートされていません。代わりに Google Cloud CLI を使用してください。
コマンドライン
リンク先 URL にダッシュを使用して
gcloud storage cpコマンドを実行し、データをプロセスに連結します。gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME - | PROCESS_NAME
ここで
BUCKET_NAMEは、オブジェクトを含むバケットの名前です。例:my_app_bucketOBJECT_NAMEは、プロセスにストリーミングするオブジェクトの名前です。例:data_measurementsPROCESS_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ヘッダーを使用してオブジェクト全体の一部を取得し、それをローカル プロセスに送信します。オブジェクト全体が取得されるまで、オブジェクトの連続部分に対してリクエストを続行します。
次のステップ
- アップロードのストリーミング
- 減圧コード変換の詳細を確認する。
- オブジェクトの読み取りとダウンロードの詳細を確認する。