向存储桶发出的 CORS 请求中的
Origin
标头必须与 CORS 配置的
AllowedOrigins
元素中的源相匹配。
在向存储桶发出的 CORS 请求的
Access-Control-Request-Method
中指定的 HTTP 方法,必须与在 CORS 配置的
AllowedMethods
元素中列出的一个或多个方法相匹配。
预检请求的
Access-Control-Request-Headers
标头中列出的标头必须与 CORS 配置的
AllowedHeaders
元素中的标头相匹配。
以下是 CORS 配置示例。要创建 CORS 配置,请参阅
配置 CORS
。有关 CORS 配置的更多示例,请参阅
CORS 配置的元素
。
有关配置 CORS 规则和对 CORS 规则进行故障排除的指导,请参阅 AWS re:Post 知识中心中的
如何在 Amazon S3 中配置 CORS,并通过 cURL 确认 CORS 规则?
"AllowedHeaders": [
"Authorization"
"AllowedMethods": [
"GET",
"PUT",
"POST",
"DELETE"
"AllowedOrigins": [
"http://www.example1.com"
"ExposeHeaders": [
"x-amz-meta-custom-header"
要测试 CORS 配置,可以使用以下 CURL 命令发送预检
OPTIONS
检查。CURL 是一个命令行工具,可用于与 S3 进行交互。有关更多信息,请参阅
CURL
。
curl -v -X OPTIONS \
-H "Origin: http://www.example1.com" \
-H "Access-Control-Request-Method: PUT" \
-H "Access-Control-Request-Headers: Authorization" \
-H "Access-Control-Expose-Headers: x-amz-meta-custom-header"\
"http://bucket_name.s3.amazonaws.com/object_prefix_name"
在上面的示例中,
curl -v -x OPTIONS
命令用于向 S3 发送预检请求,来查询 S3 是否支持从跨源
http://www.example1.com
发送对于对象的
PUT
请求。标头
Access-Control-Request-Headers
和
Access-Control-Expose-Headers
是可选的。
为响应预检
OPTIONS
请求中的
Access-Control-Request-Method
标头,如果请求的方法匹配,Amazon S3 会返回受支持方法的列表。
为响应预检
OPTIONS
请求中的
Access-Control-Request-Headers
标头,如果请求的标头匹配,Amazon S3 会返回受支持标头的列表。
为响应预检
OPTIONS
请求中的
Access-Control-Expose-Headers
标头,如果请求的标头与浏览器中运行的脚本可以访问的受支持标头匹配,Amazon S3 会返回受支持标头的列表。
发送预检请求时,如果不支持使用任何 CORS 请求标头,则不会返回任何响应 CORS 标头。
为响应此预检
OPTIONS
请求,您将收到
200 OK
响应。有关测试 CORS 时收到的常见错误代码以及解决 CORS 相关问题的更多信息,请参阅
CORS 问题排查
。
< HTTP/1.1 200 OK
< Date: Fri, 12 Jul 2024 00:23:51 GMT
< Access-Control-Allow-Origin: http://www.example1.com
< Access-Control-Allow-Methods: GET, PUT, POST, DELETE