我是AWS的初学者,我正尝试连接到S3。我的导出非常简单,但是却收到错误消息:
{"message":"Inaccessible host: `legal-systems-staging.s3.eu-central-1.amazonaws.com'. This service may not be available in the `eu-central-1' region.","code":"UnknownEndpoint","region":"eu-central-1","hostname":"legal-systems-staging.s3.eu-central-1.amazonaws.com","retryable":true,"originalError":{"message":"getaddrinfo ENOTFOUND legal-systems-staging.s3.eu-central-1.amazonaws.com
要进行连接,我需要输入以下代码:
const AWS = require('aws-sdk');
module.exports = function(customENV){ return function(req, res) {
//get ENV variables
const aws_accessKeyId = customENV.access_key;
const aws_secretAccessKey = customENV.secret_access_key;
const aws_region = customENV.s3_region;
const aws_bucket = customENV.s3_bucket;
//configuring the AWS environment
AWS.config.update({
region: aws_region,
accessKeyId: aws_accessKeyId,
secretAccessKey: aws_secretAccessKey
});
new AWS.S3().getObject({ Bucket: aws_bucket, Key: req.body.template }, function(err, data) {
if (!err) {
res.send('good');
} else {
res.send(err);
}
});
}};
S3管理控制台中的桶的区域为EU(法兰克福),根据this list,该区域应该正确。
凭据正确。我在做什么错了?
答案 0 :(得分:0)
我已经找到问题所在。正如我在评论中所写,我们正在使用google firebase将文件发送到AWS S3。问题是我们使用了错误的价格计划(Spark而不是Blaze),这就是为什么我无法拨打外部电话。
答案 1 :(得分:0)
这听起来真的很愚蠢,但是我遇到了这个错误,因为在我的.env
文件中,我的存储桶和区域的值混合在一起了。
切换它们的值后,我的代码又可以工作了。
使用AWS CLI工具检查访问权限。如果您可以通过AWS CLI(列表,上传,签名URL,删除等)而不是通过代码进行访问,则很可能您遇到类似的问题。
希望这对像我这样的人有帮助。
答案 2 :(得分:0)
我有一个类似的案例,我使用 .env 文件来存储密钥、ID 和区域。
.env 中的这段代码有错误:
Buildship
当我删除单引号时,Unknown Endpoint 错误消失了。
AWS_ID = 'AKIAW6LZAWQJYVSFY6MV'