AWS SDK JavaScript:如何显示AWS.S3.putObject 的上传进度?

新手上路,请多包涵

我正在开发一个 JavaScript 客户端来将文件直接上传到 Amazon S3。

 <input type="file" id="file-chooser" />
<button id="upload-button">Upload to S3</button>
<div id="results"></div>

<script type="text/javascript">
  var bucket = new AWS.S3({params: {Bucket: 'myBucket'}});

  var fileChooser = document.getElementById('file-chooser');
  var button = document.getElementById('upload-button');
  var results = document.getElementById('results');
  button.addEventListener('click', function() {
    var file = fileChooser.files[0];
    if (file) {
      results.innerHTML = '';

      var params = {Key: file.name, ContentType: file.type, Body: file};
      bucket.putObject(params, function (err, data) {
        results.innerHTML = err ? 'ERROR!' : 'UPLOADED.';
      });
    } else {
      results.innerHTML = 'Nothing to upload.';
    }
  }, false);
</script>

Amazon 文档中的示例工作正常,但它不提供有关上传进度的任何反馈。

有任何想法吗?

谢谢

原文由 FkJ 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
1 个回答

为什么不使用 s3.PutObject 函数而不是使用 ManagedUpload 函数。

它是专门开发的,允许您挂接到 httpUploadProgress 事件,该事件应该允许相当容易地实现进度条的更新。

原文由 Chris Williams 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题