node.js - 从S3存储桶读取大文件

标签 node.js amazon-web-services amazon-s3

我正在尝试从 S3 存储桶读取大小约为 1GB 的文件。我的目标是从文件中读取数据并将其发送到另一台服务器。

当我尝试读取大文件(1GB)时,我的系统挂起/服务器崩溃。我可以使用以下代码段控制台输出 240MB 文件的数据

var bucketParams = {
    Bucket: "xyzBucket",
    Key: "input/something.zip"
};

router.get('/getData', function(req, res) {
    s3.getObject(bucketParams, function(err, data) {
        if (err) {
            console.log(err, err.stack); // an error occurred
        }
        else {
            console.log(data); // successful response
        }
    });
    // Send data over to another server
});

从 S3 读取大文件时,它是如何工作的?

最佳答案

要回答从 S3 读取大文件的问题,我建议使用 Range 来获取对象的一部分

https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html

逐步获取它可以防止您超出框架/RAM消耗的限制

您还可以利用范围支持通过多部分/多线程下载来提高带宽利用率

关于node.js - 从S3存储桶读取大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49142647/

相关文章:

javascript - 在 discord.js 中发送文件缓冲区

javascript - 来自 API 的 2 个并发请求数据混淆

amazon-web-services - AWS IAM PowerUser 适用于特定区域

node.js - 是否可以使用 `node app.js` 在 AWS 实例上运行 Node 应用程序

amazon-web-services - `aws.cognito.signin.user.admin` 范围在 Amazon Cognito 中是什么意思?

node.js - 将 pm2 的集群模块与 socket.io 和 socket.io-redis 一起使用

javascript - 环境变量 - 未定义

iis - 在保留 URL 的同时将文件移动到 Amazon S3

object - 如何从 s3 url 获取文件(前 n 个字节)

amazon-s3 - 将单个 Hadoop map reduce 输出写入多个 S3 对象