我使用这个模块上传文件到亚马逊
https://www.npmjs.com/package/streaming-s3,如果文件小于或等于 5 MB,则工作正常。
我试着上传6 MB大小的PDF文件。它显示上传成功,但当我试图通过aws打开该文件。
它显示无法加载PDF文档
当我在Aws上检查大小时,显示为5MB。
我正在使用以下代码在 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);
});
这对于小于5 MB的文件工作正常。
有什么想法吗?我需要在AWS上进行任何设置吗?
谢啦
这是通过多部分文件上传API将内容通过管道传输到S3的所需功能,即使在大小为GB的流上操作时,您也可以保持低内存使用率。此流通过将流按5 MB部分刷新到S3来避免高内存使用率,这样它一次只能存储5 MB的流数据。
我们在这里面临的问题是下一部分没有加起来。
请参考此链接了解https://www.npmjs.com/package/s3-upload-stream的端到端详细信息
您还可以跟踪上载进度,以使用调试问题
/* Handle progress. Example details object:
{ ETag: '"f9ef956c83756a80ad62f54ae5e7d34b"',
PartNumber: 5,
receivedSize: 29671068,
uploadedSize: 29671068 }
*/
upload.on('part', function (details) {
console.log(details);
});
即使在完整的文件上传完成。
upload.on('uploaded', function (details) {
console.log(details);
});
根据Amazon多部分上传文档,除最后一部分外,每个部分的大小必须至少为5MB。http://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPart.html 问题是我如何通过多部分上传api将小于5MB的文件上传到AWS S3存储桶。我问这个问题的原因是,我想在上传到S3时对所有文件使用多部分上传API
有没有办法,如何上传比5MB更小的文件?多部分上传要求块的大小大于5MB(不包括最后一个)。但是我正在处理32KB的块。 有没有一种方法可以上传较小的块,或者让我保存我的块,直到它们达到5MB大小,然后使用多部分上传? 感谢解答!
我想从hadoop上传一些文件到AWS bucket。我有AWS访问密钥、保密密钥和S3导入路径。 我无法通过AWS CLI命令访问。我在aws凭证文件中设置了密钥。我尝试执行“aws s3 ls ”,但得到的错误是 由于上面的代码不起作用,我尝试使用distcp命令,如下所示。 对于上面的命令,我也得到下面的错误。 18/11/09 00:55:40信息http.AmazonHttpClient
问题内容: 我正在使用节点v0.10.26并表示v4.2.0,而我对节点还很新。在过去三个多小时的时间里,我一直在想着要在节点上使用文件上传表单,这是我的头。在这一点上,我只是试图让req.files不返回未定义。我的观点看起来像这样 这是我的路线 这是我的app.js 我看到了其中包含的内容,应该可以提供帮助,但是如果添加这些行,我什至无法启动服务器。 问题答案: ExpressJS问题: 大多
问题内容: 选择图像,doc或pdf后,我想将它们通过okhttp3。如何进行此操作? 并在okhttp 3中 显示的错误是 谢谢。 问题答案: 所以我自己回答这个问题。 因此,我首先将输出流打开到一个临时文件。 扩展名取决于mime类型。您可以通过以下方式找到mime类型 现在从文件读取并将其内容写入临时文件 现在写入文件 最后 成功之后的最后