【发布时间】:2022-11-06 13:58:17
【问题描述】:
我正在尝试列出对象,如果以后可以将文件下载/上传到 AWS S3。下面的代码会引发错误。我做错了什么,这不起作用?我已经通过以下所有可能的方式传递了 accessKeyId 和 accessSecretKey。我在 mac 上有一个配置和凭据文件,在 windows 上我只有一个 awscredentials 文件,并且在我的 windows 上也设置了它 设置 AWS_SDK_LOAD_CONFIG=1
代码
const AWS = require('aws-sdk');
function listS3Objects(file, name, type) {
const s3bucket = new AWS.S3({
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
accessSecretKey: process.env.AWS_SECRET_ACCESS_KEY,
// accessKeyId: 'my actual key in credentials file', //aws_access_key_id
// accessSecretKey: 'my actual secret key in credentials file', //aws_secret_access_key
region: "ap-southeast-1"
});
const params = {
Bucket: 'testbucketName',
};
s3bucket.listObjects(params, (err, data) => {
if (err) { throw err; }
/* eslint-disable no-console */
console.log('Success!');
console.log(data);
return data;
/* eslint-enable no-console */
});
}
const objs = listS3Objects()
//Test AWS Credentials
it('Tests', () => {
cy.log(objs)
})
错误
以下错误源自您的测试代码,而不是赛普拉斯。
配置中缺少凭证,如果使用 AWS_CONFIG_FILE,请设置 AWS_SDK_LOAD_CONFIG=1
当赛普拉斯检测到源自您的测试代码的未捕获错误时,它将自动使当前测试失败。
赛普拉斯无法将此错误与任何特定测试相关联。
我们动态生成了一个新的测试来显示这个失败。 node_modules/aws-sdk/lib/config.js:400:1 398 | 399 |函数 credError(msg, err) {
400 | return new AWS.util.error(err || new Error(), { | ^ 401 |代码:'CredentialsError', 402 |消息:味精, 403 |名称:'CredentialsError'
【问题讨论】: