当使用 Node.js 的 aws-sdk npm 插件时,我可以使用以下代码上传 50kb 的 pdf(到 AWS s3):
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 文件?
UPDATE
我仍然没有找到该问题的任何文档或答案。
UPDATE 2
我将接受显示这个或另一个可以做到这一点的框架的答案。我需要该框架还能够允许对对象进行身份验证读取。
UPDATE 3我现在可以使用它,但我还没有找到它不应该工作的原因。
提前致谢!
连接到 S3 的速度并不快,并且根据网络波动,您可能会遇到超时和其他奇怪的行为。
您提供的代码很好,但您可以利用分段上传来解决问题,尤其是> 5MB 文件的问题。
I made 分段上传的粗略实现 https://gist.github.com/sevastos/5804803并且还可以重试任何失败部分的上传最多 3 次,这也适用于小于 5MB 的较小文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)