当为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
我会接受答案,这些答案显示了这个或另一个可以做到这一点的框架。我需要该框架才能允许对对象进行auth-read。
更新3 我现在已经开始工作,但我找不到它不应该工作的原因。
提前致谢!
答案 0 :(得分:7)
连接到S3并不快,然后根据网络波动,您可能会出现超时和其他奇怪的行为。
您提供的代码很好,但您可以利用可以解决问题的分段上传,特别是使用> 5MB文件。
我做了a rough implementation of a multipart upload并且还让它重新上传任何失败的部分最多3次,这也适用于5MB以下的小文件。