首页 > 解决方案 > 上传到 AWS s3 错误:“NetworkingError:网络故障”

问题描述

我正在运行代码将文件上传到 s3 存储桶;但是代码在运行时返回此错误:“NetworkingError:网络故障”我已经进行了一些修复搜索,但到目前为止我发现没有一个有效。代码位于 HTML 元素中。

这是我的代码:

<script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.24.min.js">
</script>

<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js">
</script>

<script type="text/javascript">


function sendLoadMessage () {

window.parent.postMessage("LoadOk1", "*");

}
function postMsg(msg) {
   window.parent.postMessage(msg, "*");
}

const BUCKET_NAME = 'EXAMPLE_BUCKET';
const IAM_USER_KEY = 'EXAMPLE_KEY';
const IAM_USER_SECRET = 'EXAMPLE_SECRET_KEY'; 

function Send() {

    var files = document.getElementById('fileUpload').files;
    let In = files[0]
    console.log("In", In)


    uploadToS3(In)

    function uploadToS3(file) {

      let s3bucket = new AWS.S3({
          accessKeyId: IAM_USER_KEY,
          secretAccessKey: IAM_USER_SECRET,
          Bucket: BUCKET_NAME
      });

      s3bucket.createBucket(function () {

          var params = {
              Bucket: BUCKET_NAME,
              Key: "New",
              Body: In
          };
          s3bucket.upload(params, function (err, data) {
              if (err) {
              console.log('error in callback');
              console.log(err);

              }
              console.log('success');
              console.log(data);

          });
      });
    }

} 
</script>

<div>        
   <input type="file" id="fileUpload">    
</div>    
<div> 
   <button class="button" onclick="Send()">Submit</button>    
</div>  
  

<body onload="sendLoadMessage ();" style="background-color:white;">

<div id="GoogleSheetsDocs"></div>

</body>

这是我目前的CORS:

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

我尝试更改我的 CORS 并将文件发送到存储桶中的文件夹中,但都没有奏效。有谁知道我怎样才能让它工作?

标签: javascriptamazon-s3

解决方案


推荐阅读