2015-05-07 8 views
7

Amazon S3 kabım için aşağıdaki CORS yapılandırmasına sahibim. Mesele şu ki, konfigürasyon tamamen göz ardı ediliyor gibi görünüyor. Kovadan nesne istendiğinde Access-Control-Allow-Origin başlıklarına sahip değilim. Herhangi bir evrende benzer bir sorun mu var veya hata ayıklama ipuçları var mı? Amazon S3 kovusundaki Access-Control-Allow-Origin başlıklarının eksik değerleri

<?xml version="1.0" encoding="UTF-8"?> 
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
<CORSRule> 
    <AllowedOrigin>http://www.example.com</AllowedOrigin> 
    <AllowedMethod>GET</AllowedMethod> 
    <MaxAgeSeconds>3000</MaxAgeSeconds> 
    <AllowedHeader>*</AllowedHeader> 
</CORSRule> 
<CORSRule> 
    <AllowedOrigin>http://localhost:8100</AllowedOrigin> 
    <AllowedMethod>GET</AllowedMethod> 
    <MaxAgeSeconds>3000</MaxAgeSeconds> 
    <AllowedHeader>*</AllowedHeader> 
</CORSRule> 

Bu benim kova politikasıdır:

{ 
"Version": "2012-10-17", 
"Statement": [ 
    { 
     "Sid": "AddPerm", 
     "Effect": "Allow", 
     "Principal": "*", 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::example.com/*" 
    } 
]} 
+0

Öğeleri alırken S3 uç noktasını veya Web sitesi uç noktasını mu kullanıyorsunuz? –

+0

@RakeshBollampally Web sitesi bitiş noktasını kullanmıyorum. – sebbo

+0

Web sitesi bitiş noktasını kullanmak zorunda mıyım? – sebbo

cevap

1

Sen yanıtta Access-Control-Allow-Origin başlığını almak için istek üzerine bir Origin başlığını sağlamalısınız.

kullanma bukle:

$ curl -XGET -H 'Origin: www.example.com' https://my-bucket.s3.amazonaws.com/doc/2006-03-01/

Not o - belgelere aykırı - CORS yapılandırma kova üzerinde "Barındırma Statik Web Sitesi" etkinleştirmek bile onurlandırıldı. Kovaya, kepçe alt etki alanı (yukarıdaki gibi) veya tam yol aracılığıyla erişebilirsiniz: https://s3.amazonaws.com/my-bucket/doc/2006-03-01

+0

Yine de farketmedim :-(Bir başlığın belirtilmesini istemeden kepçedeki tüm dosyalara hala erişebiliyorum .. Kova politikamda herhangi bir şey ayarlamam gerekiyor mu? Politikamın içeriği ile ilgili soru – sebbo

+0

@sebbo - CORS'in ne yaptığını yanlış anladınız, açıklama için buraya bakın: http://stackoverflow.com/a/10636765/2838391 CORS, alan adı kaynak paylaşımı için kullanılır. Dosyaların, CORS uygulaması yoktur. –

+0

@RakeshBollampally Evet ama kastettiğim, benim kova için bir CORS politikası tanımladığımda, o zaman sadece Origin üstbilgisini yetkili kökenlerden biriyle belirlerken kaynakları alabilmem gerektiğiydi? KOD'umdan bir kaynak getirmeden bunu yapabilirim – sebbo

0

Sana S3 belgelerinde görmüyorum gibi ekstra xml bilgileri ekleme neden emin değilim. Basitçe, bu çalışması gerekir:

<CORSConfiguration> 
<CORSRule> 
    <AllowedOrigin>http://www.example.com</AllowedOrigin> 
    <AllowedMethod>GET</AllowedMethod> 
    <MaxAgeSeconds>3000</MaxAgeSeconds> 
    <AllowedHeader>*</AllowedHeader> 
</CORSRule> 
<CORSRule> 
    <AllowedOrigin>http://localhost:8100</AllowedOrigin> 
    <AllowedMethod>GET</AllowedMethod> 
    <MaxAgeSeconds>3000</MaxAgeSeconds> 
    <AllowedHeader>*</AllowedHeader> 
</CORSRule> 
</CORSConfiguration> 
+0

Haklısınız ama bu sorunu çözmedi :-( – sebbo