从AWS S3下载文件的Java REST服务

时间:2017-05-02 15:11:39

标签: rest amazon-web-services amazon-s3 command-line-interface

有人可以帮我理解这个: 当我在EC2服务器中部署我的REST服务并且如果EC2服务器具有用于S3访问的IAM角色时,它将从S3下载文件。 如果我正在处理我的开发/本地环境并尝试从S3访问文件,该怎么办?我开始知道我们需要使用Amazon CLI从本地环境访问S3。 有人可以解释一下我的Java代码将如何检查Amazon CLI(安装在我的Mac中)中的凭据以访问S3吗?

2 个答案:

答案 0 :(得分:0)

当您设置AWS CLI访问权限时,您在本地用户名为.aws的文件夹中创建一个文件夹,此处有一个凭据文件,您的本地执行的Java代码将查找该文件。它被称为default credential provider chain

首先它将查看您的系统环境变量,如果那里没有凭据,它将查看您的java系统属性。如果不存在,它将查看~/.aws/credentials等。最后,作为最后一个选项,它将查看EC2实例配置文件凭据,这是您已授予EC2实例的IAM角色。 #39;重新运行代码。

答案 1 :(得分:0)

根据documentation,这是AWS SDK for Java在系统中查找凭据的顺序:

  1. 环境变量 - AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY。
  2. Java系统属性 - aws.accessKeyId和aws.secretKey。
  3. 默认凭据配置文件文件 - 通常位于 〜/ .aws /凭证
  4. Amazon ECS容器凭据(与您的问题无关)。
  5. 实例个人资料凭据(与您的问题无关)。
  6. 在第一次使用期间运行aws configure以配置AWS CLI时,您的凭据将保存到〜/ .aws / credentials,因此,只要您已经可以访问S3,它就可以正常工作CLI。