このページでは、リクエスト元による支払い機能の設定方法について説明します。また、リクエスト元による支払い機能を有効にしたバケットにリクエストを送信する例についても説明します。
リクエスト元による支払いを設定する
以降のセクションでは、リクエスト元による支払いをオンまたはオフにする方法と、バケットでリクエスト元による支払いが有効かどうかを確認する方法について説明します。
前提条件
バケットのリクエスト元による支払いのステータスを確認するには
storage.buckets.get
権限が必要です。また、Google Cloud コンソールまたは Google Cloud CLI でリクエスト元による支払いを有効または無効にする場合にも必要です。リクエスト元による支払いを有効または無効にするには
storage.buckets.update
権限が必要です。リクエスト元による支払いを無効にする場合は、リクエストに請求先プロジェクトを含めるか
resourcemanager.projects.createBillingAssignment
権限を持つ必要があります。詳細については、リクエスト元による支払いの使用条件とアクセス要件をご覧ください。
権限は、ロールによってユーザーに付与されます。たとえば、ストレージ管理者ロールには、上記のすべての storage.buckets
権限があります。ロールは、バケットを含むプロジェクトに付与できます。
リクエスト元による支払いの設定
バケットでリクエスト元による支払いを有効または無効にするには:
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、設定するバケットを探し、[リクエスト元による支払い] 列を見つけます。
この列の値は、そのバケットのリクエスト元による支払いの現在の状態を示します。
目的のバケットでリクエスト元による支払いの状態をクリックします。
表示されたウィンドウで、リクエスト元による支払いに設定する状態に応じて、[オンにする] または [オフにする] をクリックします。
有効にすると、バケットの [リクエスト元による支払い] 列に緑色のふきだしと [オン] が表示されます。無効にすると、列に灰色のふきだしと [オフ] が表示されます。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
適切なフラグを指定して、gcloud storage buckets update
コマンドを使用します。
gcloud storage buckets update gs://BUCKET_NAME FLAG
ここで
BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
リクエスト元による支払いを有効にする場合
FLAG
は--requester-pays
です。無効にする場合は --no-requester-pays です。
正常に終了すると、レスポンスは次の例のようになります。
Updating gs://my-bucket/... Completed 1
クライアント ライブラリ
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
- OAuth 2.0 Playground から認可アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
次の情報が含まれる JSON ファイルを作成します。
{ "billing": { "requesterPays": STATE } }
ここで、STATE は
true
またはfalse
です。cURL
を使用して JSON API を呼び出し、PATCH
Bucket リクエストを行います。curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=billing"
ここで
JSON_FILE_NAME
は、手順 2 で作成した JSON ファイルのパスです。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンの名前です。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
次の情報が含まれる XML ファイルを作成します。
<BillingConfiguration> <RequesterPays>STATE</RequesterPays> </BillingConfiguration>
ここで、STATE は
Enabled
またはDisabled
です。cURL
を使用して、PUT
Bucket リクエストとbilling
クエリ文字列パラメータを含めた XML API を呼び出します。curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?billing"
ここで
XML_FILE_NAME
は、手順 2 で作成した XML ファイルのパスです。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンの名前です。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
リクエスト元による支払いが有効かどうかを確認する
バケットでリクエスト元による支払いが有効かどうかを確認するには:
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットリストの [リクエスト元による支払い] 列に、各バケットのリクエスト元による支払いのステータスが表示されます。
有効の場合、ステータスは緑色で、[オン] と表示されます。
コマンドライン
gcloud storage buckets describe
コマンドを使用し、--format
フラグを指定します。
gcloud storage buckets describe gs://BUCKET_NAME --format="default(requester_pays)"
ここで、BUCKET_NAME
はステータスを表示するバケットの名前です。例: my-bucket
。
正常に終了すると、レスポンスは次の例のようになります。
requester_pays: true
クライアント ライブラリ
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 に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から認可アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して JSON API を呼び出し、GET
Bucket リクエストを行います。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=billing"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンの名前です。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、GET
Bucket リクエストとbilling
クエリ文字列パラメータを含めた XML API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?billing"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンの名前です。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
リクエスト元による支払いバケットにアクセスする
次の例では、リクエスト元による支払いバケットに保存したオブジェクトをダウンロードできるように、請求先プロジェクトを追加する方法を説明します。同様の手順で、リクエスト元による支払いバケットやバケット内のオブジェクトに他のリクエストを実行します。前提条件については、リクエスト元による支払いのアクセス要件をご覧ください。
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、ダウンロードするオブジェクトを含むバケットの名前をクリックします。
表示されたウィンドウで、プルダウン メニューから請求先プロジェクトを選択します。
選択したプロジェクトを請求先として使用する権限があることを確認するチェックボックスをオンにします。
[保存] をクリックします。
通常どおりオブジェクトをダウンロードします。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
リクエストで --billing-project
フラグを使用します。
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME SAVE_TO_LOCATION --billing-project=PROJECT_IDENTIFIER
ここで
BUCKET_NAME
は、ダウンロードするオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は、ダウンロードするオブジェクトの名前です。例:pets/dog.png
SAVE_TO_LOCATION
は、オブジェクトを保存するローカルパスです。例:Desktop/Images
PROJECT_IDENTIFIER
は、課金対象のプロジェクトの ID または番号です。例:my-project
クライアント ライブラリ
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
- OAuth 2.0 Playground から認可アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
リクエストに、請求先プロジェクトの ID を設定した
userProject
クエリ文字列パラメータを含めます。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media&userProject=PROJECT_IDENTIFIER"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。SAVE_TO_LOCATION
は、オブジェクトを保存する場所です。例:Desktop/dog.png
BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
OBJECT_NAME
は、ダウンロードするオブジェクトの URL エンコード名です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
PROJECT_IDENTIFIER
は、課金対象のプロジェクトの ID または番号です。例:my-project
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
リクエストに、請求先プロジェクトの ID を設定した
x-goog-user-project
ヘッダーを含めます。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "x-goog-user-project: PROJECT_ID" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。PROJECT_ID
は、課金対象のプロジェクトの ID です。例:my-project
SAVE_TO_LOCATION
は、オブジェクトを保存する場所です。例:Desktop/dog.png
BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
OBJECT_NAME
は、ダウンロードするオブジェクトの URL エンコード名です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
次のステップ
- リクエスト元による支払いの詳細を確認する。
- データを一般公開する。