AWSfile upload超过5MB – nodejs

我正在使用这个模块上传文件到亚马逊

https://www.npmjs.com/package/streaming-s3 ,如果文件小于或等于5 MB,则工作正常。

我试图上传大小为6 MB的PDF文件。 它显示上传成功,但是当我试图通过aws打开该文件。

它显示无法加载PDF文档

当我检查大小Aws它显示5 MB。

我正在使用以下代码在AWS上进行上传

var options = { concurrentParts: 2, waitTime: 20000, retries: 2, maxPartSize: 10 * 1024 * 1024 }; //call stream function to upload the file to s3 var uploader = new streamingS3(fileReadStream, config.aws.accessKey, config.aws.secretKey, awsHeader, options); //start uploading uploader.begin();// important if callback not provided. // handle these functions uploader.on('data', function (bytesRead) { console.log(bytesRead, ' bytes read.'); }); uploader.on('part', function (number) { console.log('Part ', number, ' uploaded.'); }); // All parts uploaded, but upload not yet acknowledged. uploader.on('uploaded', function (stats) { console.log('Upload stats: ', stats); }); uploader.on('finished', function (response, stats) { console.log(response); logger.log('info', "UPLOAD ", response); cb(null, response); }); uploader.on('error', function (err) { console.log('Upload error: ', err); logger.log('error', "UPLOAD Error: ", err); cb(err); }); 

这对于less于5 MB的文件工作正常。

任何想法? 是否有任何设置,我需要在AWS上做?

谢谢

这是通过多部分file uploadAPI将内容传送到S3的所需function,即使在GB大小的stream上操作,也可以保持较低的内存使用量。 这个数据stream通过将数据stream刷新为5MB的部分来避免高内存使用,从而一次只能存储5MB的数据stream。

我们这里面临的问题是下一个部分没有join到stream中。

请参阅此链接的端到端详细信息https://www.npmjs.com/package/s3-upload-stream

您还可以跟踪上传进度,以便使用debugging问题

 /* Handle progress. Example details object: { ETag: '"f9ef956c83756a80ad62f54ae5e7d34b"', PartNumber: 5, receivedSize: 29671068, uploadedSize: 29671068 } */ upload.on('part', function (details) { console.log(details); }); 

即使完成file upload完成。

 upload.on('uploaded', function (details) { console.log(details); });