node.js - Node aws-sdk s3 文件上传大小

标签 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

我会接受表明这个或另一个框架可以做到这一点的答案。我将需要该框架也能够允许对对象进行授权读取。

更新 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/

相关文章:

amazon-web-services - sso 用户的 s3 存储桶策略

node.js - 无法调用 Lambda 函数 AWS

javascript - 无法使用 dynamodb-data-mapper-js 通过 LSI 创建 DynamoDB 表

node.js - TypeError : keytar. addPassword不是 Electron 函数

php - S3 与 EC2 中的用户镜像(CloudFront 性能)

node.js - 我正在尝试调用 aws nodejs SDKdescribeStacks(云形成)来获取堆栈的详细信息。我收到错误。下面给出代码和响应

amazon-web-services - Glue AWS 在 boto3 python 上创建数据目录表

mysql - 检查现有用户node-mysql

javascript - 为什么这个正则表达式返回匹配?

python - Django QR 代码生成 PIL 图像使用 S3 保存不起作用