AWS CloudFront 到 S3 Post 支持吗?
AWS CloudFront to S3 Post Support?
第三方程序需要从我们的 CDN 访问静态文件。问题是,他们不是通过 GET 获取这些文件,而是通过 POST.
发出此请求
测试此 POST => cdn.company.com/somefile
时,我得到 -
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>MethodNotAllowed</Code>
<Message>The specified method is not allowed against this resource.</Message>
<Method>POST</Method>
<ResourceType>OBJECT</ResourceType>
</Error>
CloudFront 行为设置为支持所有方法-
并且CORS配置包括POST方法-
<?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>2592000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
不确定还需要做什么。我怀疑 S3(正确地)假定 POST 正在尝试向存储桶添加信息,而它应该只是 return 路径中的文件。 cloudfront 到 s3 这可能吗?我是否需要将请求转发给将下载文件的 lambda?
S3 仅支持 GET
和 HEAD
,因此您无法发送 POST
请求(参见 )。
您可以编写一个 lambda Edge 函数,在将请求 POST 方法发送到源 (s3) 之前将其替换为 GET 方法。无需在本地下载文件。
第三方程序需要从我们的 CDN 访问静态文件。问题是,他们不是通过 GET 获取这些文件,而是通过 POST.
发出此请求测试此 POST => cdn.company.com/somefile
时,我得到 -
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>MethodNotAllowed</Code>
<Message>The specified method is not allowed against this resource.</Message>
<Method>POST</Method>
<ResourceType>OBJECT</ResourceType>
</Error>
CloudFront 行为设置为支持所有方法-
并且CORS配置包括POST方法-
<?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>2592000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
不确定还需要做什么。我怀疑 S3(正确地)假定 POST 正在尝试向存储桶添加信息,而它应该只是 return 路径中的文件。 cloudfront 到 s3 这可能吗?我是否需要将请求转发给将下载文件的 lambda?
S3 仅支持 GET
和 HEAD
,因此您无法发送 POST
请求(参见
您可以编写一个 lambda Edge 函数,在将请求 POST 方法发送到源 (s3) 之前将其替换为 GET 方法。无需在本地下载文件。