尝试上载到S3时的InvalidAccessKeyId [英] InvalidAccessKeyId while trying to upload to s3
本文介绍了尝试上载到S3时的InvalidAccessKeyId的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用aws-sdk
将文件上载到S3。我正在使用
aws.config.update({
accessKeyId: aws.config.credentials.accessKeyId,
secretAccessKey: aws.config.credentials.secretAccessKey,
region: 'us-east-1'
});
然后使用multer-s3
上传:
const s3 = new aws.S3();
const upload = multer({
storage: multerS3({
s3: s3,
bucket: 'my-bucket-v1',
acl: 'public-read',
contentType: multerS3.AUTO_CONTENT_TYPE,
key: function (req, file, cb) {
const today = new Date();
cb(null, file.originalname)
console.log("file
", file);
}
})
}).array('upl', 1);
router.post('/api/upload', (req, res, next) => {
upload(req, res, err => {
if (err) return console.log("err
", err);
res.status(201).send();
})
});
我不断收到的错误是我的访问密钥ID:"The AWS Access Key Id you provided does not exist in our records."
我还在节点服务器(console.log(s3)
)中记录了我的AWS凭据,它与我的AWS安全凭据中的内容相匹配。
如何正确配置我的AWS凭据以上载到S3?
推荐答案
终于想明白了。在multer
对象中使用访问键之前,我必须在初始化s3
的位置设置访问键。
const s3 = new aws.S3({
accessKeyId: ACCESS_KEY_ID // Set access key here
secretAccessKey: SECRET_ACCESS_KEY,
});
const upload = multer({
storage: multerS3({
s3: s3, // Use s3 instance here
bucket: 'my-match',
acl: 'public-read',
contentType: multerS3.AUTO_CONTENT_TYPE,
key: function (req, file, cb) {
const today = new Date();
cb(null, file.originalname)
console.log("file
", file);
}
})
}).array('upl', 1);
我仍然不明白为什么以前的实现不再起作用,但至少这种方式可以起作用。
这篇关于尝试上载到S3时的InvalidAccessKeyId的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文