带有响应405的S3 POST请求到S3

时间:2015-02-18 20:43:30

标签: amazon-web-services amazon-ec2 amazon-s3 http-post http-status-code-405

我有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。有什么想法吗?

2 个答案:

答案 0 :(得分:12)

这不是CORS相关的 - 它本身就是S3。 S3网站端点仅适用于GETHEAD。在检查重定向规则之前,应该拒绝任何其他内容。

  

网站端点

     

仅支持对象的GET和HEAD请求。

     

- http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html

答案 1 :(得分:0)

如果要对POST使用S3请求,则需要在浏览器中使用根对象,方法是创建POSTPolicy以获取S3 authentication

您可以参考Browser-Based Upload using HTTP POST