本页面介绍了如何创建已启用分层命名空间的存储桶。
所需的角色
如需获得创建启用分层命名空间的存储桶所需的权限,请让您的管理员为您授予项目的 Storage Admin (roles/storage.admin
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含创建启用分层命名空间的存储桶所需的 storage.buckets.create
权限。
创建启用了分层命名空间的存储桶
控制台
- 在 Trusted Cloud 控制台中,转到 Cloud Storage 存储桶页面。
- 点击 创建。
- 在创建存储桶页面上,输入您的存储桶信息,然后点击继续:
- 在开始使用部分中,执行以下操作:
- 输入符合存储桶名称要求的全局唯一的存储桶名称。
- 如需启用分层命名空间,请点击 展开箭头以展开优化文件导向型和数据密集型工作负载部分,然后选择在此存储桶上启用分层命名空间。
注意:您无法在现有存储桶中启用分层命名空间。
- 可选:如需添加存储桶标签,请点击 展开箭头以展开标签部分,然后点击 add_box 添加标签,并为标签指定
key
和value
。 - 在选择数据存储位置部分中,执行以下操作:
- 在为数据选择一个存储类别部分中,为存储桶选择设置默认类别。
注意:右侧窗格中的每月费用估算面板会根据您选择的存储类别和位置以及您预期的数据大小和操作,估算存储桶的每月费用。
- 在选择如何控制对对象的访问权限部分中,选择存储桶是否强制执行禁止公开访问,然后在访问权限控制部分,选择统一。
注意:如果项目的组织政策已强制执行禁止公开访问,则禁止公开访问切换开关处于锁定状态。
- 在选择如何保护对象数据部分中,执行以下操作:
- 点击创建。
如需了解如何在 Trusted Cloud 控制台中获取失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
命令行
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
在开发环境中,运行
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
:为存储桶启用分层命名空间。您无法在现有存储桶中启用分层命名空间。
如果请求成功,该命令将返回以下消息:
Creating gs://BUCKET_NAME/...
设置以下标志,以便更好地控制存储桶的创建:
--project
:指定与存储桶相关联的项目 ID 或项目编号。例如my-project
。--default-storage-class
:指定存储桶的默认存储类别。例如STANDARD
。
如需查看使用 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
客户端库
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
。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。- 创建一个包含存储桶设置的 JSON 文件,其中必须包含存储桶的
name
。如需查看完整的设置列表,请参阅存储桶:插入文档。以下是一些常用的设置,包括: BUCKET_NAME
是您要为自己的存储桶指定的名称(须遵循命名要求),例如my-bucket
。BUCKET_LOCATION
是您要用于存储自己的存储桶对象数据的位置,例如US-EAST1
。STORAGE_CLASS
是您存储桶的默认存储类别,例如STANDARD
。- 将
hierarchicalNamespace.enabled
设置为TRUE
,以便为存储桶启用分层命名空间。您无法在现有存储桶中启用分层命名空间。 - 将
uniformBucketLevelAccess.enabled
设置为TRUE
,以便为存储桶启用统一存储桶级访问权限。
- 使用
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
是包含存储桶设置的 JSON 文件的名称。PROJECT_IDENTIFIER
是与存储桶相关联的项目 ID 或编号。例如my-project
。
{ "name": "BUCKET_NAME", "location": "BUCKET_LOCATION", "storageClass": "STORAGE_CLASS", "hierarchicalNamespace": { "enabled": "BOOLEAN" }, "iamConfiguration": { "uniformBucketLevelAccess": { "enabled": true }, }, }
其中: