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

use*_*896 8 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

 }}); 
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:"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>
Run Code Online (Sandbox Code Playgroud)

use*_*896 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>
Run Code Online (Sandbox Code Playgroud)

  • 请将此标记为正确答案,因为它是;) (2认同)