6

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, DELETEBậ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== 
+0

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? –

+0

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 :) –

+0

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 –

Trả lời

1

Nó có thể là quá muộn để trả lời câu hỏi này. Một trong những nguyên nhân của vấn đề này là Default Root Object. Yêu cầu POST phải được gửi tới url gốc trên đám mây ("/"). Kiểm tra cài đặt 'Mặc định đối tượng gốc' trên mặt tiền. Giá trị của nó phải là trốngkhông phải index.html.

Các vấn đề liên quan