2014-02-21 2 views
5

Я использую AWS S3 для доступа к файлу в своем приложении HTML5. Следующий код отлично работает на моем ноутбуке, но он не работает на мобильном устройстве (iphone). Любая помощь приветствуется.Как я могу избежать «Ошибка в сети: сетевой сбой» при загрузке файла из ведра AWS S3?

AWS.config.region = 'us-west-2'; 
var bucket = new AWS.S3({params: {Bucket: 'mybucket'}}); 
bucket.getObject({Key: myfile}, function (error, data) { 

if (error != null) { 
    alert("Failed to retrieve " + myfile + " :" + error); 
} else { 
    //alert("Loaded " + data.ContentLength + " bytes"); 
    localStorage[myfile] = data.Body.toString(); 
    // do something with data.body 

}}); 

Ошибки я получаю: "HTTP // локальный хост Не удалось получить foo.json: NetworkingError: Ошибка сети"

У меня есть следующее конфигурации CORS для этого ведра

<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
<CORSRule> 
    <AllowedOrigin>*</AllowedOrigin> 
    <AllowedMethod>GET</AllowedMethod> 
    <MaxAgeSeconds>3000</MaxAgeSeconds> 
</CORSRule> 

ответ

19

Я смог решить эту проблему технической поддержкой aws. Вопрос был разрешен следующим CORSconfig:

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

Вы спаситель! – twb

+2

Пожалуйста, отметьте это как правильный ответ, потому что это:) – SomethingOn

+0

Это было разрешено промежуточно после изменения, или это заняло некоторое время? – jmendiola

Смежные вопросы