本頁說明如何建立啟用階層式命名空間的 bucket。
必要的角色
如要取得建立啟用階層式命名空間的 bucket 所需的權限,請要求管理員授予您專案的「Storage 管理員 」(roles/storage.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備 storage.buckets.create 權限,可建立啟用階層式命名空間的值區。
建立已啟用階層命名空間的 bucket
控制台
- 前往 Cloud de Confiance 控制台的「Cloud Storage bucket」頁面。
- 點選 「Create」(建立)。
在「建立 bucket」頁面中,輸入 bucket 資訊。完成下列每個步驟後,請按一下「繼續」前往下一個步驟:
-
在「開始使用」部分,執行下列操作:
-
輸入符合值區名稱要求的全域不重複名稱。
-
-
在「Choose where to store your data」(選擇資料的儲存位置) 部分,執行下列操作:
-
在「選擇資料儲存方式」部分,執行下列操作:
-
在「選取如何控制物件的存取權」部分,選取值區是否強制執行禁止公開存取,並為值區物件選取統一值區層級存取權。
-
在「選擇保護物件資料的方式」部分,執行下列操作:
-
選取「資料保護」下方的任何選項,為 bucket 設定所需項目。
-
如要變更虛刪除功能在刪除物件後保留物件的時間長度,請選取「虛刪除政策」核取方塊,然後選取「設定自訂保留期限」選項。然後指定要保留已刪除物件的時間長度。
如要停用虛刪除功能 (例如值區主要包含短期暫存資料),請取消勾選「虛刪除政策」核取方塊。
-
如要選擇如何加密物件資料,請按一下標示為「資料加密」的 展開箭頭,然後執行下列操作:
- 在「預設加密金鑰類型」部分,選取 bucket 的預設加密金鑰。如果選取「Cloud KMS key」(Cloud KMS 金鑰),請提供 Cloud Key Management Service 金鑰。
- 在「加密機制強制執行規則」部分,針對「金鑰類型」,選取要允許或限制 bucket 中新物件使用的加密類型。
-
-
點選「建立」。
如要瞭解如何透過 Cloud de Confiance 控制台取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」一文。
指令列
-
在 Cloud de Confiance 控制台中啟用 Cloud Shell。
Cloud de Confiance 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
-
在開發環境中,執行
gcloud storage buckets create指令:gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION --uniform-bucket-level-access --enable-hierarchical-namespace
其中:
BUCKET_NAME是您要授予值區的名稱,必須遵守命名要求。例如:my-bucket。BUCKET_LOCATION是值區的位置。例如:us-east1。--uniform-bucket-level-access:為值區啟用統一值區層級存取權。
--enable-hierarchical-namespace:為 bucket 啟用階層命名空間。您無法在現有 bucket 中啟用階層命名空間。
如果要求成功,指令會傳回下列訊息:
Creating gs://BUCKET_NAME/...
設定下列標記,進一步控管值區的建立作業:
--project:指定要與值區建立關聯的專案 ID 或專案編號。例如:my-project。--default-storage-class:指定值區的預設儲存空間級別。例如:STANDARD。如要自動管理物件的儲存空間級別,請改用--enable-autoclass旗標。詳情請參閱「Autoclass」。
如要查看使用 Google Cloud CLI 建立水桶的完整選項清單,請參閱
buckets create選項。例如:
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access --enable-hierarchical-namespace
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
C#
詳情請參閱「Cloud Storage C# API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Go
詳情請參閱「Cloud Storage Go API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Java
詳情請參閱「Cloud Storage Java API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Node.js
詳情請參閱「Cloud Storage Node.js API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
詳情請參閱「Cloud Storage Python API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Ruby
詳情請參閱「Cloud Storage Ruby API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Rust
REST API
JSON API
- 建立包含值區設定的 JSON 檔案,其中必須包含值區的
name。如需完整的設定清單,請參閱「 Buckets: Insert」說明文件。以下是常見的設定: BUCKET_NAME是您要授予值區的名稱,必須遵守命名要求。例如:my-bucket。BUCKET_LOCATION是您希望儲存值區物件資料的位置。例如:US-EAST1。STORAGE_CLASS是值區的預設儲存空間級別。例如:STANDARD。- 設為
TRUE,即可為 bucket 啟用階層命名空間。hierarchicalNamespace.enabled您無法在現有 bucket 中啟用階層命名空間。 - 設為
TRUE,即可為 bucket 啟用統一 bucket 層級存取權。uniformBucketLevelAccess.enabled
- 使用
cURL呼叫 JSON API:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b?project=PROJECT_IDENTIFIER"
其中:
JSON_FILE_NAME是包含 bucket 設定的 JSON 檔案名稱。PROJECT_IDENTIFIER是要與值區建立關聯的專案 ID 或編號。例如:my-project。
{ "name": "BUCKET_NAME", "location": "BUCKET_LOCATION", "storageClass": "STORAGE_CLASS", "hierarchicalNamespace": { "enabled": "BOOLEAN" }, "iamConfiguration": { "uniformBucketLevelAccess": { "enabled": true }, }, }
其中: