我有S3的以下CORS配置,以便将我的一个存储桶用作静态网站托管:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
</CORSRule>
</CORSConfiguration>
然后我有以下编辑重定向规则:
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>abc</KeyPrefixEquals>
</Condition>
<Redirect>
<HostName>myec2instance.com</HostName>
</Redirect>
</RoutingRule>
我想要做的是当S3收到POST时,/ abc将请求和请求主体重定向到我的ec2实例。重定向规则工作正常(我能够通过将POST切换到GET请求来测试它)但是由于任何原因,当请求是POST时,S3正在返回HTTPResponse 405。有什么想法吗?
答案 0 :(得分:12)
这不是CORS相关的 - 它本身就是S3。 S3网站端点仅适用于GET
和HEAD
。在检查重定向规则之前,应该拒绝任何其他内容。
网站端点
仅支持对象的GET和HEAD请求。
- http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html
答案 1 :(得分:0)
如果要对POST
使用S3
请求,则需要在浏览器中使用根对象,方法是创建POSTPolicy
以获取S3 authentication