0

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

对于小文件,它按预期工作得很好。但我无法使用上传大文件。它也没有给我任何错误。它只是不上传文件(如果文件很大),甚至不进入回调并超时。有什么方法可以处理将大文件上传到 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 存储桶上上传大文件的库,请提出建议。

4

2 回答 2

0

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

文档中:

分段上传 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--"
   }
   */
 });
于 2020-04-18T07:58:29.980 回答
0

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

于 2021-10-05T07:24:45.307 回答