7

Geçtiğimiz günlerde, Amazon S3 + CloudFront'un raylarım uygulaması için CDN olarak hizmet vermesini sağladım. Font varlıkları kullanmak ve bunları Firefox veya IE'de görüntülemek için S3 grubumda CORS'i etkinleştirmem gerekiyor.Amazon S3'ün CORS ayarlarını güncellemek için zamana ihtiyacı var mı? Ne kadar?

HTTP/1.1 200 OK 
x-amz-id-2: Ovs0D578kzW1J72ej0duCi17lnw+wZryGeTw722V2XOteXOC4RoThU8t+NcXksCb 
x-amz-request-id: 52E934392E32679A 
Date: Tue, 04 Jun 2013 02:34:50 GMT 
Cache-Control: public, max-age=31557600 
Content-Encoding: gzip 
Expires: Wed, 04 Jun 2014 08:16:26 GMT 
Last-Modified: Tue, 04 Jun 2013 02:16:26 GMT 
ETag: "723791e0c993b691c442970e9718d001" 
Accept-Ranges: bytes 
Content-Type: text/javascript 
Content-Length: 39140 
Server: AmazonS3 

Ben 'Access-Control-Allow-Origin' bazı yerlerde bakmaya gidelim:

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

Sonra aldığım, curl -I https://small-read-staging-assets.s3.amazonaws.com/staging/assets/settings_settings-312b7230872a71a534812e770ec299bb.js.gz kullanılan? S3, CORS ayarlarını güncellemek için zaman alır mı? Başlıkları süresinin dolması durumunda, son kullanma tarihlerini zorlayabilir miyim?

+0

Eğer CORS etkili olması göremiyorsanız Bu sorunları ele sahip olun GET --request. http://docs.aws.amazon.com/AmazonS3/latest/dev/cors-troubleshooting.html İdeal olarak çok uzun sürmemelidir. Bunu birkaç dakika önce aldığını gördüm. – Keshi

cevap

4

Menşei başlığını göndermeyi deneyin:

$ curl -v -H "Origin: http://example.com" -X GET https://small-read-staging-assets.s3.amazonaws.com/staging/assets/settings_settings-312b7230872a71a534812e770ec299bb.js.gz > /dev/null 

sonra aradığınız CORS yanıt başlıklarını göstermelidir çıkışı: cURL olabilir ile CORS istekleri hata ayıklama ile ilgili

< Access-Control-Allow-Origin: http://example.com 
< Access-Control-Allow-Methods: GET 
< Access-Control-Allow-Credentials: true 
< Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method 

Ek bilgiler Burada bulunanlar: How can you debug a CORS request with cURL?

Farklı türde CORS talepleri olduğunu unutmayın (basit ve ön kontrol) Farklılıklar hakkında güzel bir öğretici şu adreste bulunabilir: http://www.html5rocks.com/en/tutorials/cors/

Bu yardımcı olur!

1

bu deneyin:

  1. kapsam aşağı için size erişim izni vermek istediğiniz alan adlarını deneyin. S3, *'u sevmez. Kutunun dışında
  2. CloudFront + S3 doesn't handle the CORS configuration correctly. Kludge, başvurulan alanın adını içeren bir sorgu dizesi eklemek ve CloudFront dağıtım ayarlarınızdaki sorgu dizeleri için açıkça desteği etkinleştirmektir.
İlgili konular