【问题标题】:Uploading Large Files on AWS S3 bucket在 AWS S3 存储桶上上传大文件
【发布时间】:2017-09-17 02:07:16
【问题描述】:

我正在尝试通过我的 Angular Web 应用将 大文件(PDF、视频) 上传到 AWS s3 bucket。我使用ng-file-upload 将文件上传到我的节点服务器,在节点上我使用multer-s3 npm 包。

对于小文件,它按预期工作得很好。但我无法使用上传大文件。它也没有给我任何错误。它只是不上传文件(如果文件很大),甚至不进入回调并超时。有什么方法可以处理将大文件上传到 s3 Bucket?

var uploadSingle = upload.single('uploadFile');

router.post('/uploadVideo',function(req,res,next){  
    uploadSingle(req,res,function(err){
                // doesn't come here if the file is large
            if(err){
                //Error Response , Error while uploading Module PDF;
            }
            else{
                //handling file upload
               // success response
            }
    });
}

如果有人能帮我解决这个问题,不胜感激。如果您知道其他可以帮助我在 AWS s3 存储桶上上传大文件的库,请提出建议。

【问题讨论】:

  • 您是否尝试过使用官方的 aws-sdk 来支持 NodeJs?
  • 是的,我一开始就尝试过,但使用 aws-ask 无法做到,这就是我转向 multer-s3 的原因
  • @RaviShankarBharti,你解决过这个问题吗?我正在使用 Multer 进行 s3 上传,并且在处理大文件时也遇到了问题(任何超过 275mb 的文件都会失败并给我一个 ERR_CONNECTION_RESET 响应)

标签: node.js file-upload amazon-s3 multer multer-s3


【解决方案1】:

您可以使用分段上传 API 在 S3 中上传大文件(最大 5 TB)。

来自documentation:

分段上传 API 旨在改善上传体验 对于较大的物体。您可以分段上传对象。这些对象 部分可以以任意顺序独立上传,也可以并行上传。 您可以对大小从 5 MB 到 5 TB 的对象使用分段上传。 有关更多信息,请参阅使用分段上传上传对象 API。

如果您使用的是SDK:

/* The following example initiates a multipart upload. */

 var params = {
  Bucket: "examplebucket", 
  Key: "largeobject"
 };
 s3.createMultipartUpload(params, function(err, data) {
   if (err) console.log(err, err.stack); // an error occurred
   else     console.log(data);           // successful response
   /*
   data = {
    Bucket: "examplebucket", 
    Key: "largeobject", 
    UploadId: "ibZBv_75gd9r8lH_gqXatLdxMVpAlj6ZQjEs.OwyF3953YdwbcQnMA2BLGn8Lx12fQNICtMw5KyteFeHw.Sjng--"
   }
   */
 });

【讨论】:

    【解决方案2】:

    我当时遇到了同样的问题,但即使现在我似乎也没有找到好的解决方案。所以,我自己实现了分段上传过程,为了帮助像我这样的人,我写了一篇文章。你可以找到文章here。希望这篇文章对您有用。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。
    猜你喜欢
    • 2015-07-23
    • 2018-04-25
    • 2018-04-12
    • 2021-02-07
    • 1970-01-01
    • 2020-05-20
    • 2015-12-15
    • 2017-10-17
    • 1970-01-01
    相关资源
    最近更新 更多