跨域资源共享 (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 配置:
控制台
您无法使用 Trusted 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 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置 CORS 配置:
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置 CORS 配置:
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置 CORS 配置:
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置 CORS 配置:
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置 CORS 配置:
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置 CORS 配置:
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置 CORS 配置:
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置 CORS 配置:
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。使用您要应用的 CORS 配置创建一个 JSON 文件。如需查看示例 JSON 文件,请参阅配置示例。
使用
cURL
,通过PATCH
Bucket 请求调用 JSON API:curl --request PATCH \ 'https://storage.s3nsapis.fr/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
标头生成访问令牌。使用您要应用的 CORS 配置创建一个 XML 文件。如需查看示例 XML 文件,请参阅配置示例。
使用
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.s3nsapis.fr/BUCKET_NAME?cors"
其中:
BUCKET_NAME
是存储桶的名称。例如my-bucket
。PROJECT_ID
是与存储桶关联的项目的 ID。例如my-project
。CORS_CONFIG_FILE
是您在第 2 步中创建的 XML 文件的路径。
如需移除存储桶的 CORS 配置,请设置空的 CORS 配置。
查看存储桶的 CORS 配置
如需查看存储桶的 CORS 配置,请执行以下操作:
控制台
您无法使用 Trusted 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 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 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
XML API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。使用
cURL
,通过范围限定为?cors
的GET
Bucket 请求调用 XML API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/BUCKET_NAME?cors"
其中
BUCKET_NAME
是您要查看其 CORS 配置的存储桶的名称,例如my-bucket
。
后续步骤
- 探索 CORS 配置示例,包括用于移除存储桶的 CORS 配置的示例。
- 详细了解 CORS。
- 了解如何排查 CORS 请求问题。