访问我在 Amazon 中的 S3 存储桶

Posted

技术标签:

【中文标题】访问我在 Amazon 中的 S3 存储桶【英文标题】:Accessing my S3 bucket in Amazon 【发布时间】:2014-12-03 14:00:40 【问题描述】:
AWS.config.loadFromPath('./AwsConfig.json'); 

var params = 
        Bucket: 'test-dev-2',
        Key: file,
        Body: data
    ;


    s3.putObject(params, function(err) 
        if(err) 
            console.log(err);
        
        else 
            console.log("Success");
        

我已经在我的 AwsConfig.json 文件中设置了凭据,并且控制台返回了此错误:

 [TimeoutError: Missing credentials in config]
  message: 'Missing credentials in config',
  code: 'CredentialsError',
  time: Wed Oct 08 2014 16:05:18 GMT-0300 (BRT),
  originalError: 
    message: 'Could not load credentials from any providers',
     code: 'CredentialsError',
     time: Wed Oct 08 2014 16:05:18 GMT-0300 (BRT),
     originalError: 
       message: 'Connection timed out after 1000ms',
        code: 'TimeoutError',
        time: Wed Oct 08 2014 16:05:18 GMT-0300 (BRT)   

凭据没有错。。有人知道为什么会出错吗?

【问题讨论】:

遇到同样的问题,但时断时续。你解决了吗? 【参考方案1】:

您的 json 文件应该看起来像这样(我在其中添加了一些“asdf”:)

"accessKeyId": "ACIAIasdfasdfBEF", "secretAccessKey": "1+eOuyasdfasdasdfEn1", "region": "us-west-2", "apiVersions": "s3": "2006-03-01", "ses": "2010-12-01"

另外,在您的 AWS 控制台中,确保用户密钥可以访问 S3。创建一个新用户组,向该组添加“S3 Full”权限,并创建一个属于该安全组(不是您的管理员组!)的新用户!

还有一个。我没有看到您是如何创建 s3 变量的。我像这样创建我的服务器启动:

AWS.config.loadFromPath( './aws-config.json' );
AWS.s3 = new AWS.S3();

然后在代码中我访问它类似于你:AWS.s3.putObject(...)

【讨论】:

嘿@clay,我做了一切,我创建了一个新组和一个新用户,并将这个用户分配给这个组..但仍然有同样的问题...... 嘿@Nescau,我不确定问题可能是什么。等你弄明白后发回这里!【参考方案2】:

在尝试了所有选项后,这对我有用

AWS.config = new AWS.Config();
AWS.config.accessKeyId = "accessKey";
AWS.config.secretAccessKey = "SecretAccessKey";

但硬编码安全密钥并不是一个好习惯。因此,将尽快使用 aws 推荐的安全选项更新这篇文章

【讨论】:

【参考方案3】:

在获取 s3 对象之前实例化配置很重要。

AWS.config.loadFromPath('./awsCredentials.json');
var s3 = new AWS.S3();

【讨论】:

以上是关于访问我在 Amazon 中的 S3 存储桶的主要内容,如果未能解决你的问题,请参考以下文章

从 EC2 实例本地访问 Amazon S3 存储桶

Amazon S3 存储桶策略只允许访问特定的 http

对 Amazon S3 存储桶的 FTP/SFTP 访问 [关闭]

访问 Amazon S3 公共存储桶

Amazon S3 存储桶策略:如何锁定仅访问您的 EC2 实例

如何只允许特定用户访问 Amazon S3 上的内容