节点aws-sdk s3文件上传大小

时间:2013-06-15 18:53:58

标签: node.js amazon-s3 aws-sdk

当为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 我现在已经开始工作,但我找不到它不应该工作的原因。

提前致谢!

1 个答案:

答案 0 :(得分:7)

连接到S3并不快,然后根据网络波动,您可能会出现超时和其他奇怪的行为。

您提供的代码很好,但您可以利用可以解决问题的分段上传,特别是使用> 5MB文件。

我做了a rough implementation of a multipart upload并且还让它重新上传任何失败的部分最多3次,这也适用于5MB以下的小文件。