【发布时间】:2021-11-12 08:32:06
【问题描述】:
我有一个设置为允许公开上市的 s3 存储桶。当我这样做时:
aws s3 ls s3://bucket_name/prefix/ --no-sign-request
我成功地列出了存储桶。我想在使用aws-sdk for Node.js 的应用程序中列出它。在那里,我做到了:
import AWS from 'aws-sdk';
const s3 = new AWS.S3();
s3.listObjectsV2({Bucket: bucket_name, Prefix: prefix, Delimiter: "/"}, ...
但我得到一个错误:
message: 'Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1',
2021-09-17T12:40:33.459881+00:00 app[web.1]: code: 'CredentialsError',
2021-09-17T12:40:33.459881+00:00 app[web.1]: errno: 'ECONNREFUSED',
2021-09-17T12:40:33.459882+00:00 app[web.1]: syscall: 'connect',...
2021-09-17T12:40:33.459883+00:00 app[web.1]: time: 2021-09-17T12:40:33.459Z,
2021-09-17T12:40:33.459884+00:00 app[web.1]: originalError:
2021-09-17T12:40:33.459884+00:00 app[web.1]: { message: 'Could not load credentials from any providers',
2021-09-17T12:40:33.459884+00:00 app[web.1]: code: 'CredentialsError',
2021-09-17T12:40:33.459884+00:00 app[web.1]: errno: 'ECONNREFUSED',
2021-09-17T12:40:33.459885+00:00 app[web.1]: syscall: 'connect',...
2021-09-17T12:40:33.459886+00:00 app[web.1]: time: 2021-09-17T12:40:33.459Z,
2021-09-17T12:40:33.459886+00:00 app[web.1]: originalError:
2021-09-17T12:40:33.459886+00:00 app[web.1]: { message: 'EC2 Metadata roleName request returned error',
2021-09-17T12:40:33.459887+00:00 app[web.1]: code: 'ECONNREFUSED',
2021-09-17T12:40:33.459887+00:00 app[web.1]: errno: 'ECONNREFUSED',
2021-09-17T12:40:33.459888+00:00 app[web.1]: syscall: 'connect',... }
看起来好像 SDK 正在尝试获取凭据,即使资源在没有凭据的情况下可用。是否可以在不要求凭据的情况下标记要发出的请求?
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-sdk