Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AWS S3不可访问主机_Javascript_Amazon Web Services_Amazon S3 - Fatal编程技术网

Javascript AWS S3不可访问主机

Javascript AWS S3不可访问主机,javascript,amazon-web-services,amazon-s3,Javascript,Amazon Web Services,Amazon S3,我是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","hostnam

我是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管理控制台中的Bucket具有EU区域(法兰克福),因此应该是正确的


凭证是正确的。我做错了什么?

我已经找到了问题所在。正如我在评论中所写,我们正在使用GoogleFirebase将文件发送到AWSS3。问题是我们使用了错误的价格计划(Spark而不是Blaze),这就是我无法进行外部调用的原因。

这听起来非常愚蠢,但我犯了这个错误,因为在我的
.env
文件中,我的桶值和区域值混淆了。 在转换了它们的值之后,我的代码又开始工作了

使用AWS CLI工具检查访问权限。如果您可以通过AWS CLI(列出、上载、签署URL、删除等)进行访问,但不能通过您的代码进行访问,那么您很可能会遇到类似的问题


希望这能帮助像我这样的人。

我有一个类似的例子,我使用.env文件来存储密钥、id和区域

.env中的此代码有错误:

AWS_ID = 'AKIAW6LZAWQJYVSFY6MV'
当我删除单引号时,未知端点错误消失了

AWS_ID = AKIAW6LZAWQJYVSFY6MV

如错误所述,您的bucket似乎位于
eu-central-1
之外的另一个区域,请登录aws控制台,查看您的bucket位于哪个区域,并在代码中使用相同的区域。@Justinas-更新的回答customENV来自何处?此代码是否在本地计算机上运行?如果是这样,您可能应该在~/.aws中设置凭据,而不是在这样的代码中设置凭据。如果它在其他地方运行(比如lambda),那么您需要添加一个策略来允许lambda函数访问S3bucket@dbramwell我们正在使用GoogleFirebase(不要问我为什么)将文件发送到AWSS3。代码正在公共网站上运行(在firebase部署之后)。环境值来自另一个系统,但我甚至尝试了硬编码的值,结果是一样的。我也有同样的问题。但我没有付费计划,我有跟踪账户。这是否意味着我无法使用SDK访问S3?