本文說明如何建立、列出、取得、更新及刪除代管資料夾。
您可以透過代管資料夾,為物件名稱路徑中具有相同前置字串的物件,選擇性地設定 IAM 政策,藉此控管 Cloud Storage bucket 中物件群組的存取權。這種做法有助於您滿足資料安全性與法規遵循需求。
您也可以使用代管資料夾,根據物件名稱前置字串,選擇性地讓 Rapid Cache 快取在寫入時擷取資料。詳情請參閱「寫入時擷取」。
事前準備
如要建立及管理代管資料夾,請先啟用統一的值區層級存取權,並取得必要的 IAM 角色。
啟用統一值區層級存取權
如果尚未啟用統一值區層級存取權,請先完成這項作業。
取得必要角色
如要取得建立及管理代管資料夾所需的權限,請要求管理員授予您 bucket 的「Storage 資料夾管理員 」(roles/storage.folderAdmin) IAM 角色。
這個預先定義的角色具備建立及管理受管理資料夾所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要建立及管理代管資料夾,必須具備下列權限:
-
如何建立受管理的資料夾:
storage.managedFolders.create -
如要列出新建立的代管資料夾,藉此驗證:
storage.objects.list -
如要列出代管資料夾:
storage.managedFolders.list -
如何取得代管資料夾:
storage.managedFolders.get -
如何移動代管資料夾:
-
storage.managedFolders.delete(來源 bucket) -
storage.managedFolders.create(用於目的地值區)
-
-
如何更新代管資料夾:
storage.managedFolders.update -
如要刪除代管資料夾:
storage.managedFolders.delete
如要瞭解如何授予 bucket 角色,請參閱「在 bucket 上設定及管理 IAM 政策」。
建立代管資料夾
控制台
使用 Google Cloud 控制台時,您可以對資料夾或模擬資料夾啟用管理功能,藉此建立代管資料夾。下列步驟說明如何建立資料夾或模擬資料夾,然後啟用資料夾管理功能:
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選要建立受管理資料夾的 bucket 名稱。
在「Bucket details」(值區詳細資料) 頁面中,按一下「Create folder」(建立資料夾) 即可建立新資料夾。如果要轉換為代管資料夾的資料夾已存在,請跳至說明如何存取「更多選項」 選單的步驟。
在「Name」(名稱) 欄位中,輸入資料夾的名稱。如需命名注意事項,請參閱「受管理資料夾名稱」。
點選「建立」。
新建立的資料夾會顯示在「資料夾瀏覽器」窗格中。
在「資料夾瀏覽器」窗格中,按一下要轉換為代管資料夾的資料夾旁邊的「更多選項」 選單,然後按一下「編輯權限」。
系統會顯示「要啟用資料夾管理機制嗎?」對話方塊。
按一下「啟用」。
資料夾會轉換為代管資料夾。「權限」
MANAGED_FOLDER_NAME窗格隨即顯示,當中會列出資料夾的 IAM 政策,並依主體和角色分類。如要建立新的 IAM 政策,請參閱「在代管資料夾設定 IAM 政策」。
指令列
如要建立受管理資料夾,請執行 gcloud storage managed-folders create 指令:
gcloud storage managed-folders create gs://BUCKET_NAME/MANAGED_FOLDER_NAME
其中:
BUCKET_NAME是您要建立受管理資料夾的值區名稱。例如:my-bucket。MANAGED_FOLDER_NAME是要建立的受管理資料夾名稱。例如:my-managed-folder/。
如要確認受管理資料夾是否已建立,請執行 gcloud storage managed-folders describe 指令:
gcloud storage managed-folders describe gs://BUCKET_NAME/MANAGED_FOLDER_NAME
其中:
BUCKET_NAME是您建立受管理資料夾的值區名稱。MANAGED_FOLDER_NAME是您建立的受管理資料夾名稱。
用戶端程式庫
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
使用
cURL透過POSTManagedFolder 要求呼叫 JSON API:curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -d '{ "name": "MANAGED_FOLDER_NAME" }' \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders"其中:
MANAGED_FOLDER_NAME是您要建立的受管理資料夾名稱。例如:my-managed-folder/。BUCKET_NAME是您要建立受管理資料夾的值區名稱。例如:my-bucket。
建立代管資料夾,啟用 Rapid Cache 寫入時擷取功能
本節說明如何建立代管資料夾,並設定前置字元層級的 Rapid Cache 寫入時擷取功能。如果您未使用 Rapid Cache 或其寫入時擷取功能,請略過本節。
如要建立代管資料夾,以便為使用 Rapid Cache 建立的快取啟用寫入時的前置字元層級擷取:
請參閱「瞭解如何啟用寫入時擷取」,熟悉如何設定前置字元層級的寫入時擷取。
確認快取的
ingestOnWrite屬性已設為false。 如需操作說明,請參閱「更新快取」。在要求中加入
rapidCacheConfig設定:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "name": "MANAGED_FOLDER_NAME", "rapidCacheConfig": { "policies": { "RAPID_CACHE_ID": { "rapidCacheId": "RAPID_CACHE_ID", "ingestOnWrite": "enabled" } } } }' \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders"其中:
MANAGED_FOLDER_NAME是您要建立的受管理資料夾名稱。快取會使用這個受管理資料夾名稱,在寫入時選擇性擷取物件。舉例來說,如果您將受管理資料夾的名稱指定為my-managed-folder/,快取只會擷取路徑中包含my-managed-folder/的 bucket 物件。RAPID_CACHE_ID是快取的 ID,也就是快取的區域。例如:us-east1-b。您指定的快取必須與要建立代管資料夾的 bucket 相關聯。如要找出與值區相關聯的快取,請列出該值區的快取。BUCKET_NAME是與快取相關聯的值區名稱。例如,my-cached-bucket。系統會在該 bucket 中建立受管理資料夾。
列出代管資料夾
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在「資料夾瀏覽器」窗格中,使用「切換節點」 展開值區中的資料夾清單。
清單會顯示 bucket 中的資料夾、模擬資料夾和受管理資料夾。
指令列
如要列出受管理資料夾,請執行 gcloud storage managed-folders list 指令:
gcloud storage managed-folders list gs://BUCKET_NAME
其中:
BUCKET_NAME是包含要列出代管資料夾的值區名稱。例如:my-bucket。
請注意,您也可以指定資料夾路徑,而非值區名稱。 例如:
gcloud storage managed-folders list gs://my-bucket/folder/
用戶端程式庫
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
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL透過要求列出受管理資料夾呼叫 JSON API:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders"
其中
BUCKET_NAME是包含您要列出代管資料夾的值區名稱。例如:my-bucket。
取得代管資料夾的中繼資料
指令列
如要取得受管理資料夾的中繼資料,請執行 gcloud storage managed-folders describe 指令:
gcloud storage managed-folders describe gs://BUCKET_NAME/MANAGED_FOLDER_NAME
其中:
BUCKET_NAME是包含要列出代管資料夾的值區名稱。例如:my-bucket。MANAGED_FOLDER_NAME是要擷取中繼資料的受管理資料夾名稱。
用戶端程式庫
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
使用
cURL透過要求取得受管理資料夾,呼叫 JSON API:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME"
其中:
BUCKET_NAME是包含要取得的受管理資料夾的值區名稱。例如:my-bucket。MANAGED_FOLDER_NAME是以路徑表示的受管理資料夾名稱。例如:example-dir/。如果代管資料夾是巢狀結構,代管資料夾路徑中的斜線 (/) 字元必須逸出。例如:example-dir1%2Fexample-dir2。
移動代管資料夾
控制台
在目標值區中建立新的代管資料夾。
將物件從來源值區的原始代管資料夾複製到目的地值區的新代管資料夾。
從來源 bucket 刪除原始受管理資料夾。
指令列
如要移動受管理資料夾和其中的物件,請執行 gcloud storage mv 指令,並使用 --include-managed-folders 選項:
gcloud storage mv --include-managed-folders gs://SOURCE_BUCKET_NAME/MANAGED_FOLDER_NAME gs://DESTINATION_BUCKET_NAME/MANAGED_FOLDER_NAME
其中:
SOURCE_BUCKET是原始值區的名稱。例如:my-source-bucket`。DESTINATION_BUCKET是您要將受管理資料夾移至的值區名稱。例如:my-destination-bucket。MANAGED_FOLDER_NAME是您要移動的受管理資料夾名稱。例如:my-managed-folder/。
REST API
JSON API
如要將受管理資料夾從一個值區移至另一個值區,請完成下列步驟:
在目標值區中建立新的代管資料夾。
從來源 bucket 中原始代管資料夾複製 IAM 政策,然後貼到目的地 bucket 中的新代管資料夾。
將物件從來源值區的原始代管資料夾複製到目的地值區的新代管資料夾。
從來源 bucket 刪除原始受管理資料夾。
更新受管理資料夾的 Rapid Cache 寫入時擷取政策
本節說明如何在前置字元層級啟用或停用 Rapid Cache 寫入時擷取設定,這項設定會使用受管理資料夾做為基礎機制。如果您未使用 Rapid Cache 或其寫入時擷取功能,請略過本節。
如要為共用受管理資料夾前置字元的物件啟用或停用 Rapid Cache「寫入時擷取」政策,請更新受管理資料夾的 rapidCacheConfig 設定。只有在使用 JSON API 更新快取的寫入時擷取政策時,才需要按照這些指示操作。
如要進一步瞭解如何啟用或停用前置字元層級的寫入時擷取功能,請參閱「瞭解寫入時擷取功能」。
REST API
JSON API
如要新增、修改或刪除受管理資料夾的 Rapid Cache 寫入時擷取政策,請按照下列步驟操作:
請確認您已在快取的設定中設定
ingestOnWrite屬性。如要瞭解應將屬性設為哪個值,請參閱「瞭解寫入時擷取」。使用
cURL透過PATCHManagedFolder 要求呼叫 JSON API。要求主體會因您的用途而異:為代管資料夾啟用或停用寫入時擷取政策
如要更新一或多個快取的寫入時擷取設定,請使用下列指令:
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "rapidCacheConfig": { "policies": { "RAPID_CACHE_ID": { "rapidCacheId": "RAPID_CACHE_ID", "ingestOnWrite": "INGEST_VALUE" } } } }' \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME"更改項目:
BUCKET_NAME:包含代管資料夾的 bucket 名稱。MANAGED_FOLDER_NAME:受管理資料夾的名稱。RAPID_CACHE_ID:快取的 ID,也就是快取的區域。例如:us-east1-b。INGEST_VALUE:快取的擷取行為。如果值為enabled,系統會啟用受管理資料夾前置字元的寫入時擷取功能。如果值為unspecified,快取的寫入時擷取行為會繼承自上層受管理資料夾 (如有),或是 bucket 上的快取設定。如要進一步瞭解這些值設定的行為,請參閱「寫入時擷取規定」。請詳閱寫入時擷取繼承一文,瞭解快取的寫入時擷取政策在快取的ingestOnWrite設定設為unspecified時,會受到什麼影響。
如要一次為多個快取設定寫入時擷取功能,請在要求中加入多個
policies對應。例如:"rapidCacheConfig": { "policies": { "us-east1-a": { "rapidCacheId": "us-east1-a", "ingestOnWrite": "unspecified" } "us-east1-b": { "rapidCacheId": "us-east1-b", "ingestOnWrite": "enabled" } } }如要針對個別快取停用寫入時的前置字元層級擷取作業,請從
rapidCacheConfig設定中移除快取的policies對應。刪除受管理資料夾的寫入時擷取政策
您可以按照本節的說明,刪除受管理資料夾的寫入時擷取政策。刪除受管理資料夾的寫入時擷取政策後,您在要求中指定的快取不會依受管理資料夾前置字元擷取物件,值區中物件的擷取行為則會由快取設定的
ingestOnWrite欄位決定。如要瞭解受管理資料夾的ingestOnWrite欄位與快取設定如何決定寫入時擷取行為,請參閱「瞭解如何啟用寫入時擷取功能」和「寫入時擷取功能繼承」。如要刪除受管理資料夾的寫入時擷取政策,請使用下列指令。下列指令會針對包含這項設定的受管理資料夾資源,在個別快取上停用前置字元層級的寫入時擷取功能:
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "rapidCacheConfig": { "policies": { "us-east1-a": null } } }' "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME"更改項目:
BUCKET_NAME:包含代管資料夾的 bucket 名稱。MANAGED_FOLDER_NAME:受管理資料夾的名稱。RAPID_CACHE_ID:快取的 ID,也就是快取的區域。例如:us-east1-b。這個欄位必須設為null。
或者,如要刪除代管資料夾的前置字元層級寫入時擷取政策,請在要求中將
policies對應項設為null:"rapidCacheConfig": { "policies": null }
刪除代管資料夾
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選含有要刪除受管理資料夾的 bucket 名稱。
前往「Bucket details」(值區詳細資料) 頁面,找出要刪除的受管理資料夾,然後按一下旁邊的「更多選項」圖示 。
按一下「刪除資料夾」。
如要確認刪除受管理資料夾,請在「刪除」欄位中輸入
DELETE。點選「刪除」。
系統會從 Cloud Storage bucket 刪除受管理資料夾及其內容,包括儲存的物件和其他受管理資料夾。
指令列
如要刪除代管資料夾和其中的物件,請執行 gcloud storage rm 指令:
gcloud storage rm -r gs://BUCKET_NAME/MANAGED_FOLDER_NAME
其中:
BUCKET_NAME是包含要刪除之受管理資料夾的值區名稱。例如:my-bucket。MANAGED_FOLDER_NAME是要刪除的受管理資料夾名稱。例如:my-managed-folder/。
用戶端程式庫
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
如要刪除代管資料夾,請先刪除代管資料夾中的物件。
使用
cURL透過DELETEManagedFolder 要求呼叫 JSON API:curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME"
其中:
BUCKET_NAME是包含要刪除之受管理資料夾的值區名稱。例如:my-bucket。MANAGED_FOLDER_NAME是要刪除的受管理資料夾名稱。例如:my-managed-folder/。
根據預設,受管理資料夾必須是空的才能刪除。如要刪除非空白的受管理資料夾,請在要求中加入
allowNonEmpty=true做為查詢參數。
疑難排解
如需建立及管理受管理資料夾的相關說明,請參閱「疑難排解頁面」。