跨域资源共享 (CORS) 可让不同域中的资源之间实现交互,但通常情况下,为了防止恶意行为,不允许这种交互。使用此页面了解如何为 Cloud Storage 存储桶设置 CORS 配置,以及如何查看为存储桶设置的 CORS 配置。如需查看 CORS 配置(包括停用存储桶上任何现有配置的配置)示例,请参阅 CORS 配置示例。
所需的角色
如需获得在存储桶上设置和查看 CORS 配置所需的权限,请让您的管理员授予您存储桶的 Storage Admin (roles/storage.admin
) 角色。
此预定义角色包含设置和查看 CORS 配置所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
storage.buckets.get
storage.buckets.update
如需了解如何授予存储桶的角色,请参阅将 IAM 与存储桶搭配使用。
为存储桶设置 CORS 配置
如需在存储桶上设置 CORS 配置,需指定 HTTP 方法和源网域等信息,以便确定该存储桶可以接受的请求类型。
按照以下步骤在存储桶上设置 CORS 配置:
控制台
您无法使用 Google Cloud 控制台管理 CORS。请改用 gcloud CLI。
命令行
使用带有
--cors-file
标志的gcloud storage buckets update
命令:gcloud storage buckets update gs://BUCKET_NAME --cors-file=CORS_CONFIG_FILE
其中:
BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。CORS_CONFIG_FILE
是您在第 1 步中创建的 JSON 文件的路径。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上设置 CORS 配置:
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上设置 CORS 配置:
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上设置 CORS 配置:
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上设置 CORS 配置:
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上设置 CORS 配置:
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上设置 CORS 配置:
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上设置 CORS 配置:
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上设置 CORS 配置:
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。或者,您可以创建访问令牌(使用 OAuth 2.0 Playground),并将其包含在
Authorization
标头中。使用
cURL
,通过PATCH
Bucket 请求调用 JSON API:curl --request PATCH \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=cors' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' \ --header 'Content-Type: application/json' \ --data-binary @CORS_CONFIG_FILE
其中:
BUCKET_NAME
是存储桶的名称。例如my-bucket
。CORS_CONFIG_FILE
是您在第 2 步中创建的 JSON 文件的路径。
XML API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。或者,您可以创建访问令牌(使用 OAuth 2.0 Playground),并将其包含在
Authorization
标头中。使用
cURL
通过范围限定为?cors
的PUT Bucket
请求调用 XML API:curl -X PUT --data-binary @CORS_CONFIG_FILE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-project-id: PROJECT_ID" \ "https://storage.googleapis.com/BUCKET_NAME?cors"
其中:
BUCKET_NAME
是存储桶的名称。例如my-bucket
。PROJECT_ID
是与存储桶关联的项目的 ID。例如my-project
。CORS_CONFIG_FILE
是您在第 2 步中创建的 XML 文件的路径。
如需移除存储桶的 CORS 配置,请设置空的 CORS 配置。
查看存储桶的 CORS 配置
如需查看存储桶的 CORS 配置,请执行以下操作:
控制台
您无法使用 Google Cloud 控制台管理 CORS。请改用 gcloud CLI。
命令行
使用带有 --format
标志的 gcloud storage buckets describe
命令:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(cors_config)"
其中 BUCKET_NAME
是您要查看其 CORS 配置的存储桶的名称,例如 my-bucket
。
客户端库
如需使用客户端库查看存储桶的 CORS 配置,请按照有关如何显示存储桶的元数据的说明操作,并在响应中查找 CORS 字段。
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
标头生成访问令牌。或者,您可以使用 OAuth 2.0 Playground 创建访问令牌,并将其包含在
Authorization
标头中。使用
cURL
,通过GET
Bucket 请求调用 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=cors"
其中
BUCKET_NAME
是您要查看其 CORS 配置的存储桶的名称,例如my-bucket
。
XML API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。或者,您可以创建访问令牌(使用 OAuth 2.0 Playground),并将其包含在
Authorization
标头中。使用
cURL
通过范围限定为?cors
的GET
Bucket 请求调用 XML API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?cors"
其中
BUCKET_NAME
是您要查看其 CORS 配置的存储桶的名称,例如my-bucket
。
后续步骤
- 探索 CORS 配置示例,包括用于移除存储桶的 CORS 配置的示例。
- 详细了解 CORS。
- 了解如何排查 CORS 请求问题。