第三方程序需要从我们的CDN访问静态文件。问题是,它们不是通过GET来获取这些文件,而是通过POST发出此请求。
测试此function evenNumbers(array, number) {
var newarr = [],
i = array.length;
while (i-- && newarr.length < number) {
if (array[i] % 2 === 0) {
newarr.unshift(array[i]);
}
}
return newarr;
}
console.log(evenNumbers([-22, 5, 3, 11, 26, -6, -7, -8, -9, -8, 26], 2));
console.log(evenNumbers([], 2));
时,我得到了-
POST => cdn.company.com/somefile
CloudFront行为设置为支持所有方法-
并且CORS配置包括POST方法-
<?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>
不知道还需要做什么。我的怀疑是S3(正确)假设POST正在尝试将信息添加到存储桶中,在存储桶中它应该仅将文件返回到路径中。 s3的Cloudfront是否可能?我是否需要将请求转发到Lambda,该Lambda会下载文件?
答案 0 :(得分:0)
S3仅支持GET
和HEAD
,因此您无法发送POST
请求(请参阅related)。
您可以编写一个lambda Edge函数,以将请求POST方法替换为GET,然后再将其发送到源(s3)。无需本地下载文件。