S3 POST 向 S3 请求,响应为 405
S3 POST request to S3 with response 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。有什么想法吗?
这与 CORS 无关——它是 S3 本身。 S3 网站端点仅为 GET
和 HEAD
配备。在检查重定向规则之前应拒绝任何其他内容。
Website Endpoint
Supports only GET and HEAD requests on objects.
— http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html
如果您想使用 POST
请求 S3
,您需要在浏览器中使用根对象,通过创建 POSTPolicy
来获取 S3 authentication
为了将我的一个存储桶用作静态网站托管,我对 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。有什么想法吗?
这与 CORS 无关——它是 S3 本身。 S3 网站端点仅为 GET
和 HEAD
配备。在检查重定向规则之前应拒绝任何其他内容。
Website Endpoint
Supports only GET and HEAD requests on objects.
— http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html
如果您想使用 POST
请求 S3
,您需要在浏览器中使用根对象,通过创建 POSTPolicy
来获取 S3 authentication