7

最近,我啓用了Amazon S3 + CloudFront作爲我的導軌應用程序的CDN。爲了使用字體資源並在Firefox或IE中顯示它們,我必須在我的S3存儲桶上啓用CORS。Amazon S3是否需要時間更新CORS設置?多久?

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

然後我用curl -I https://small-read-staging-assets.s3.amazonaws.com/staging/assets/settings_settings-312b7230872a71a534812e770ec299bb.js.gz,我得到:

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 

我應該看到'Access-Control-Allow-Origin'一些在哪裏? S3是否需要時間來更新CORS設置?如果緩存它們,我可以強制過期的標題嗎?

+0

確保,如果你沒有看到CORS生效你已經解決了這些問題。 http://docs.aws.amazon.com/AmazonS3/latest/dev/cors-troubleshooting.html 理想情況下,它不應該花太長的時間。我已經看到它大約需要幾分鐘的時間。 – Keshi

回答

4

嘗試發送的Origin標:

$ 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 

的輸出,那麼應該表現出你正在尋找的CORS響應頭:

< 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 

有關如何調試CORS請求與捲曲可以附加信息在這裏找到: How can you debug a CORS request with cURL?

請注意,有不同類型的CORS請求(簡單和預檢) ,關於差異的一個很好的教程可以在這裏找到: http://www.html5rocks.com/en/tutorials/cors/

希望這有助於!