从AWS S3下载大对象

时间:2016-09-22 14:20:45

标签: amazon-s3

我有一个Angular Web应用程序,允许用户在本地下载文件(安装程序)。某些文件的大小超过1.5 GB,这会导致浏览器在使用“正常”文件时崩溃(Chrome) s3.getObject(opts,function(err,data){})调用,因为整个文件二进制数据被缓存....?

我尝试过使用其他技术,例如流媒体(StreamSaver.js),但没有运气。

我正在尝试对文件数据进行分块,但在以下代码中,' httpData'在加载整个文件的二进制数据之前,事件不会被调用...这似乎会破坏分块的目的。我不理解这个事件,或者我有一些错误的配置。

cache.S3.getObject({ Bucket: 'anduin-installers', Key: filePath }) 
   .on('httpDownloadProgress', function (progress) {
       $timeout(function () {
          pkg.Download.Progress = Math.floor((progress.loaded / progress.total) * 100.0);
       });
   }) 
  .on('httpData', function (chunk, response) {
      console.log('???');
   }) 
  .on('complete', function (response) {
      $timeout(function () {
         pkg.Download.Active = false;
         pkg.Download.Progress = 0;
      });
  })
 .send();

任何想法都没有如何制作活动' httpData'如果收到数据块而不是等待整个文件,则触发?或者我应该采用其他解决方案?

谢谢!

0 个答案:

没有答案