当使用用于 nods.js 的 aws-sdk npm 插件时,我可以使用以下代码(到 AWS s3)上传 50kb 的 pdf:
var params = {
Bucket: BUCKET,
Key: pdf_key,
Body: file,
ContentType: 'application/pdf'
};
var s3 = new AWS.S3();
s3.putObject(params, function(error, data) {
console.log(data);
console.log(error);
if (error) {
console.log(error);
callback(error, null);
} else {
callback(null, pdf_key);
}
});
但是当上传一个 11mb 的 pdf 时,即使指定了 ContentLength
,上传也会永远持续下去,即使有 2 分钟的超时。
问题是如何让 aws s3 接受大的 pdf 文件?
更新
我仍然没有找到问题的任何文档或答案。
更新 2
我会接受表明这个或另一个框架可以做到这一点的答案。我将需要该框架也能够允许对对象进行授权读取。
更新 3 我现在让它工作,但我还没有找到它不应该工作的原因。
提前致谢!
最佳答案
连接到 S3 的速度并不快,然后根据网络波动,您可能会遇到超时和其他奇怪的行为。
您提供的代码很好,但您可以利用分段上传来解决问题,尤其是对于大于 5MB 的文件。
我做了 a rough implementation of a multipart upload并使其重试任何失败部分的上传最多 3 次,这也适用于小于 5MB 的小文件。
关于node.js - Node aws-sdk s3 文件上传大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17126908/