Trong AWS CloudFront tôi đặt này trong vòng: "Được phép phương pháp HTTP" trong khu vực "Default cache Behavior Settings": GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
Bật POST/PUT/DELETE trên AWS CloudFront?
CloudFront tôi đang liên kết với một xô AWS S3. Vì vậy, tôi thiết lập các cấu hình AWS S3 CORS tới:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
chính sách xô AWS S3 hiện tại của tôi là:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<bucket_name_here>/*"
}
]
}
Thật không may khi chạy qua curl
tôi nhận được:
$ curl -I -s -X POST -H "Origin: www.example.com" [hash_here].cloudfront.net
HTTP/1.1 405 Method Not Allowed
Content-Type: application/xml
Transfer-Encoding: chunked
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, PUT, POST, DELETE, HEAD
Access-Control-Max-Age: 3000
Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method
Allow: GET, DELETE, HEAD, PUT
Date: Sun, 01 Mar 2015 14:12:26 GMT
Server: AmazonS3
X-Cache: Error from cloudfront
Via: 1.1 5896eef8502a96757950c7d389f2015c.cloudfront.net (CloudFront)
X-Amz-Cf-Id: uBK_gStEvSTWypvU8_YYjtfjC2UzdR3Ff_cDLitMaeUBNZ9AgrSkJg==
Từ phản hồi bạn đã đăng, có vẻ như lỗi được trả về bởi S3, chứ không phải CloudFront. Bạn đã thiết lập đúng quyền truy cập nhóm để CloudFront có thể POST ở đó không? –
Tôi nghĩ rằng tôi đã làm, tất cả mọi thứ tôi đã làm được nêu trong câu hỏi của tôi. Nếu tôi thiếu một bước, sau đó chỉ ra nơi và tôi sẽ chấp nhận giải pháp làm việc như là câu trả lời :) –
Hãy xem tại đây: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private- content-restricting-access-to-s3.html # private-content-grant-permissions-to-oai. Nó nói về quyền đọc đối tượng, nhưng tôi nghĩ bạn có thể cần phải cho phép rõ ràng quyền ghi cho Origin Access Identity mà bạn sử dụng cho CloudFront –