要求者付費

「要求者付費」功能可讓您共用 Cloud Storage bucket 中的資料,同時要求存取資料的使用者支付相關費用。如果您想向使用者提供大量資料,但不想支付資料存取費用,則可使用「要求者付費」功能。

如要瞭解如何在 bucket 啟用或停用「要求者付費」功能,請參閱「使用要求者付費功能」。

「要求者付費」功能總覽

每當使用者存取 Cloud Storage 資源 (例如 bucket 或物件) 時,系統會針對提出及執行要求收取費用。這類費用包括:

一般來說,系統會向資源的專案擁有者收取這些費用;不過,如果要求者在要求中提供計費專案,系統就會改向要求者的專案收費。在 bucket 啟用「要求者付費」功能後,您可以要求要求者在要求中加入計費專案,以便向要求者的專案收費。

未包含在內的費用

資料儲存費用 (包括提早刪除費用) 一律由 bucket 所在的專案支付,即使啟用「要求者付費」功能也一樣。

限制

下列限制適用於要求者付費:

  • 當您從 Cloud SQL 執行匯入和匯出作業時,不能使用啟用要求者付費的值區。
  • 您無法使用已啟用「要求者付費」功能的 bucket 匯出 Pub/Sub 資料。

使用及存取需求

如要為 bucket 啟用「要求者付費」功能,請啟用 bucket 的中繼資料旗標。啟用後,只有下列使用者可以存取值區或其內容:

  • 要求者在要求中加入計費專案。要求中使用的專案必須記錄良好,且使用者必須在專案中具備包含 serviceusage.services.use 權限的角色。「服務使用情形消費者」角色包含必要權限。

  • 要求者未提供計費專案,但具備 bucket 所在專案的 resourcemanager.projects.createBillingAssignment 權限。帳單專案經理角色包含必要權限。與這些要求相關的存取費用會計入含有值區的專案帳單。

對值區的所有其他要求都會失敗,並顯示 400 UserProjectMissing 錯誤。

除了這些需求外,要求者還必須具備足夠的權限以執行所要求的動作。舉例來說,如果使用者在要求中提供有效的計費專案,但沒有明確權限 (例如該值區或包含該值區的專案具備 storage.objects.create 權限),就無法將物件上傳至值區。

停用「要求者付費」功能時,您必須在要求中加入計費專案,或具備 resourcemanager.projects.createBillingAssignment 權限。

來源計費作業

使用來源值區和目標值區的作業 (例如複製或重新寫入),會向含有來源值區的專案收取費用。在大部分情況下,例如使用 JSON 和 XML API 直接呼叫,如果來源值區已啟用要求者付費功能,您只需要納入計費專案即可。

在某些情況下 (例如 gcloud storage cp 含有 --no-clobber 旗標),如果來源值區或目的地值區 (或兩者) 啟用了「要求者付費」功能,您就必須加入計費專案。這是因為這類作業在執行動作時,會同時呼叫來源和目的地 bucket。

多要求作業

對於需要多個要求才能完成的作業,在要求中使用計費專案會產生下列行為:

帳單

在要求中納入計費專案而產生的相關費用,不會單獨列在帳單中。舉例來說,假設您從「要求者付費」值區下載多個項目,並使用專案 my-project 做為要求的計費專案。如果 my-project 也包含您執行下載作業的 bucket,帳單只會顯示合併下載作業的總費用。不會分開顯示您自有值區的下載及要求者付費值區的下載。

如要區分自有 Cloud Storage 資源產生的費用,以及要求中包含計費專案產生的費用,請建立不含 Cloud Storage 資源的專案:這個專案會專門用來向其他專案中的資源 (例如「要求者付費」bucket) 提出要求。

後續步驟