我是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()
中的数据。
我添加了一个非常小的测试文件,现在我可以读取该文件了。所以问题出在文件大小上...对处理大文件读取有任何建议吗?
答案 0 :(得分:0)
这里只是快速的高级故障排除提示。在S3中签入您对存储桶的明确权限。即使您具有全局超级管理员帐户,也仍然需要显式允许该用户在存储桶中进行读/写访问。 另一个提示,不确定它是否适用于您的情况,但是我使用了一些较低级别的工具,这些工具要求在计算机上安装cli组件,并使用访问凭据+区域配置[默认] us-east-1或其他用途您必须正确设置。