本頁面說明如何啟用及停用要求者付費功能,以及如何檢查 bucket 是否已啟用要求者付費功能。
必要的角色
如要取得設定及管理「要求者付費」所需的權限,請要求管理員在包含 bucket 的專案中,授予您「Storage 管理員」(roles.storage.Admin) 角色。
這個角色具備設定及管理「要求者付費」功能所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
storage.buckets.getstorage.buckets.updateresourcemanager.projects.createBillingAssignment- 如果停用「要求付款者付費」時沒有可用的帳單帳戶,才需要這項權限。詳情請參閱「使用和存取規定」。
如需授予專案角色的操作說明,請參閱「授予或撤銷角色」。
設定要求者付費功能
如要啟用或停用 bucket 的「要求者付費」功能,請按照下列步驟操作:
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中找出要設定的 bucket,然後找到「Requester pays」(要求者付費) 欄。
該欄中的值代表該 bucket 的「要求者付費」目前狀態。
按一下值區的「要求者付費」目前狀態。
在顯示的視窗中,按一下「Turn on」(啟用) 或「Turn off」(停用),具體取決於您要為「要求者付費」設定的狀態。
啟用後,bucket 的「Requester pays」(要求者付費) 欄會顯示綠色泡泡和「On」(開啟)。停用後,該欄會顯示灰色泡泡和「關閉」。
如要瞭解如何在 Google Cloud 控制台中取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」一文。
指令列
使用 gcloud storage buckets update 指令,並加上適當的旗標:
gcloud storage buckets update gs://BUCKET_NAME FLAG
其中:
BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。FLAG為--requester-pays可啟用「要求者付費」,或為--no-requester-pays可停用「要求者付費」。
如果成功,回應會類似以下範例:
Updating gs://my-bucket/... Completed 1
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會啟用 bucket 的「要求者付費」功能:
以下範例會停用 bucket 的要求者付費模式:
C#
詳情請參閱「Cloud Storage C# API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會啟用 bucket 的「要求者付費」功能:
以下範例會停用 bucket 的要求者付費模式:
Go
詳情請參閱「Cloud Storage Go API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會在 bucket 上啟用「要求者付費」功能:
下列範例會停用 bucket 的要求者付費功能:
Java
詳情請參閱「Cloud Storage Java API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會啟用 bucket 的「要求者付費」功能:
下列範例會停用 bucket 的要求者付費功能:
Node.js
詳情請參閱「Cloud Storage Node.js API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會在 bucket 上啟用「要求者付費」功能:
下列範例會停用 bucket 的要求者付費功能:
PHP
詳情請參閱 Cloud Storage PHP API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會啟用 bucket 的「要求者付費」功能:
以下範例會停用 bucket 的要求者付費模式:
Python
詳情請參閱 Cloud Storage Python API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會啟用 bucket 的「要求者付費」功能:
下列範例會停用 bucket 的要求者付費功能:
Ruby
詳情請參閱 Cloud Storage Ruby API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會啟用 bucket 的「要求者付費」功能:
下列範例會停用 bucket 的要求者付費功能:
Rust
下列範例會啟用 bucket 的「要求者付費」功能:
以下範例會停用 bucket 的要求者付費模式:
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。建立包含下列資訊的 JSON 檔案:
{ "billing": { "requesterPays": STATE } }
其中 STATE 為
true或false。使用
cURL來透過PATCH值區要求呼叫 JSON API:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=billing"
其中:
JSON_FILE_NAME是您在步驟 2 建立的 JSON 檔案路徑。BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。建立包含下列資訊的 XML 檔案:
<BillingConfiguration> <RequesterPays>STATE</RequesterPays> </BillingConfiguration>
其中 STATE 為
Enabled或Disabled。使用
cURL呼叫 XML API,並提供PUTBucket 要求和billing查詢字串參數:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?billing"
其中:
XML_FILE_NAME是您在步驟 2 建立的 XML 檔案路徑。BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。
檢查是否已啟用「要求者付費」功能
如要檢查 bucket 是否已啟用「要求者付費」功能,請按照下列步驟操作:
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在值區清單中,每個值區的要求者付費狀態都會顯示在「Requester Pays」(要求者付費) 欄中。
如果已啟用,狀態為綠色並顯示「On」(開啟) 字樣。
指令列
使用 gcloud storage buckets describe 指令,並加上 --format 旗標:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(requester_pays)"
其中 BUCKET_NAME 是要查看狀態的 bucket 名稱。例如: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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Rust
REST API
JSON API
XML API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL呼叫 XML API,並傳送GETBucket 要求和billing查詢字串參數:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?billing"
其中
BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。
存取要求者付費值區
以下範例說明如何加入計費專案,以便下載儲存在「要求者付費」值區中的物件。請利用類似的程序在要求者付費值區或其中的物件上執行其他要求。如需必要條件資訊,請參閱要求者付費存取需求條件。
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選含有要下載物件的 bucket 名稱。
在顯示的視窗中,使用下拉式選單選取要計費的專案。
勾選核取方塊以確認您已獲授權可將所選的專案用於計費用途。
按一下 [Save] (儲存)。
按照平常方式下載物件。
如要瞭解如何在 Google Cloud 控制台中取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」。
指令列
在要求中使用 --billing-project 旗標:
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME SAVE_TO_LOCATION --billing-project=PROJECT_IDENTIFIER
其中:
BUCKET_NAME是 bucket 名稱,內含您要下載的物件。例如: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
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。在要求中加入設為計費專案 ID 的
userProject查詢字串參數:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media&userProject=PROJECT_IDENTIFIER"
其中:
SAVE_TO_LOCATION是要儲存物件的位置。例如:Desktop/dog.png。BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。OBJECT_NAME是您要下載物件的網址編碼名稱。例如pets/dog.png,網址編碼為pets%2Fdog.png。PROJECT_IDENTIFIER是要計費的專案 ID 或編號。例如:my-project。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。在要求中加入設為計費專案 ID 的
x-goog-user-project標頭:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: PROJECT_ID" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
其中:
PROJECT_ID是要計費的專案 ID。例如:my-project。SAVE_TO_LOCATION是您要儲存物件的位置。例如:Desktop/dog.png。BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。OBJECT_NAME是您要下載物件的網址編碼名稱。例如pets/dog.png,網址編碼為pets%2Fdog.png。