6

bu içinde yer GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETEAWS CloudFront'ta POST/PUT/DELETE etkinleştirme? "Varsayılan Önbellek Davranış Ayarlar" alanında "İzin HTTP Yöntemleri": AWS CloudFront yılında

Benim CloudFront bir AWS S3 kova ile bağlantılıdır. Bu yüzden hiç AWS S3 CORS yapılandırmasını ayarlayın:

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

Bulunduğum AWS S3 kova politikası geçerli: curl aracılığıyla çalıştırmak

{ 
    "Version": "2008-10-17", 
    "Statement": [ 
     { 
      "Sid": "AllowPublicRead", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::<bucket_name_here>/*" 
     } 
    ] 
} 

Ne yazık ki olsun:

$ 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

Gönderdiğiniz yanıttan, hata S3 değil CloudFront tarafından döndürülmüş gibi görünüyor. CloudFront'un POST'u bu şekilde oluşturabilmesi için küme erişim izinlerini doğru şekilde kurdunuz mu? –

+0

Sanırım yaptım, yaptığım her şey sorumu içinde özetlendi. Eğer bir adımı atlamıyorsam, o zaman nerede çalıştığımı belirteceğim ve cevap olarak çalışma çözümünü kabul ediyorum :) –

+0

Bir göz atın: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private- içerik-erişime-to-s3.html kısıtlayan # özel içerik sağlayan-izinleri-to-OAI. Nesne okuma izinleri hakkında konuşuyor, ama ben açıkça sizin CloudFront –

cevap

1

O olabilir Bu soruyu cevaplamak için çok geç. Bu sorunun nedenlerinden biri, Varsayılan Kök Nesnesi'dur. POST isteği, cloudfront root url ("/")'a yapılmalıdır. Cloudfront'ta 'Varsayılan Kök Nesne' ayarlarını kontrol edin. Değeri boş, ve index.html değil olmalıdır.