amazon-web-services - 如何使用 S3 允许来自任何来源的 http 方法选项?
问题描述
我正在尝试做一些测试,并且需要在 S3 上有一个文件,该文件将首先使用该OPTIONS
方法请求。该请求将来自各种不同的来源,因此我需要允许OPTIONS
来自任何来源。
这是curl
我使用时遇到的错误-X OPTIONS
,如果我不使用它可以正常工作:
<Error><Code>AccessForbidden</Code><Message>CORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin, request method / Access-Control-Request-Method or Access-Control-Request-Headers are not whitelisted by the resource's CORS spec.</Message><Method>GET</Method><ResourceType>OBJECT</ResourceType><RequestId></RequestId><HostId></HostId></Error>
这是我现在对 CORS 的配置:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedOrigin>http://*</AllowedOrigin>
<AllowedOrigin>https://*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>Access-Control-Allow-Origin</ExposeHeader>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
我什至尝试将 cloudfront 放在它前面并允许OPTIONS
在那里,但它没有帮助。
我应该改变什么?
谢谢。
解决方案
正如我之前的评论中提到的,请更改
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedOrigin>http://*</AllowedOrigin>
<AllowedOrigin>https://*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>Access-Control-Allow-Origin</ExposeHeader>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
至
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>Access-Control-Allow-Origin</ExposeHeader>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
那应该可以解决问题
推荐阅读
- php - 由于 PHP 版本,Apache 中的 PHPMyAdmin 500 内部服务器错误 || 新问题
- r - 将 textAreaInput 中的文本创建发送到 Google Cloud Storage
- flutter - Flutter 如何处理基于时间的事件?
- c# - 如何在 C# 中批量移动文件
- ruby-on-rails - Rails 6:如何在 collection_check_boxes 中要求至少一个复选框
- java - 龙目岛和泛化
- java - 正则表达式区分大写和小写字母
- angular - 在输入组件中传递翻译值
- mysql - MySql Error code: 1093- You can't specify target table 'n1' for update in FROM clause
- python - 切换程序时如何使未停靠的QDockWidget保持可见?