从AWS S3存储桶下载文件时,如何避免“网络错误:网络故障”?

时间:2014-02-21 15:52:37

标签: javascript amazon-s3

我使用AWS S3访问HTML5应用程序中的文件。以下代码在我的笔记本电脑上工作正常,但在移动设备(iphone)上失败。非常感谢任何帮助。

 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>

1 个答案:

答案 0 :(得分:24)

我能够通过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>