如何继续快速从s3读取大文件

时间:2019-04-15 02:27:39

标签: amazon-s3 aws-sdk

我是aws s3的初学者,我尝试在运行localhost:8000时使用JavaScript从S3读取一个很大的文件(250mb)。

我遵循了示例,并编写了应检索数据的代码。但是到目前为止,它甚至都没有进入s3.getObject()函数内部(没有错误消息,没有返回数据)。我认为尝试s3.getObject()时出现了一些错误。我不确定这是由于授权问题还是文件太大。还是还有其他我不知道的问题?

更具体地说,我一直在使用以下代码。 s3.getObject()在中间件内部被调用。我确实收到了params:的打印消息,但是没有收到--- err:--- data:的打印消息,这表明尝试s3.getObject时出现了某些故障。

const aws = require('aws-sdk');
const s3 = new aws.S3({ accessKeyId: 'directly wrote ID for now', secretAccessKey: 'directly wrote secretKey' });

module.exports.getData = (req, res, next) => {
  let getParams = {
    Bucket: 'bucket-name',
    Key: 'file-name'
  };

  console.log('params: ', getParams);
  s3.getObject(getParams, function(err, data) {
    console.log('--- err: ', err);
    console.log('--- data: ', data);
    req.myData = data;
    next();
  });
};

我想查看错误消息或s3.getObject()中的数据。

更新

我添加了一个非常小的测试文件,现在我可以读取该文件了。所以问题出在文件大小上...对处理大文件读取有任何建议吗?

1 个答案:

答案 0 :(得分:0)

这里只是快速的高级故障排除提示。在S3中签入您对存储桶的明确权限。即使您具有全局超级管理员帐户,也仍然需要显式允许该用户在存储桶中进行读/写访问。 另一个提示,不确定它是否适用于您的情况,但是我使用了一些较低级别的工具,这些工具要求在计算机上安装cli组件,并使用访问凭据+区域配置[默认] us-east-1或其他用途您必须正确设置。