使用AWS Java SDK版本2从资源文件夹中读取AWS配置和凭据

问题描述

我已将AWS凭证从〜/ .aws / credentials移至maven project的资源文件夹。文件夹结构如下所示 资源/ aws / ->配置 ->凭证 我正在使用AWS Java SDK 2+版本。如何从资源文件夹中读取值以获取区域,访问键,创建存储桶并执行操作。

解决方法

您不应将凭证文件放在资源目录中。现成~/.aws中的AWS Java SDK supports凭证文件:

以下列表显示了受支持的凭据检索技术:

  1. Java系统属性aws.accessKeyIdaws.secretAccessKey。适用于Java的AWS开发工具包使用SystemPropertyCredentialsProvider加载这些凭证。

  2. 环境变量 AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY 。适用于Java的AWS开发工具包使用EnvironmentVariableCredentialsProvider类来加载这些凭证。

  3. 默认凭据配置文件 –该文件的具体位置可能因平台而异,但通常位于~/.aws/credentials。该文件由许多AWS开发工具包和AWS CLI共享。适用于Java的AWS开发工具包使用ProfileCredentialsProvider加载这些凭证。

    您可以使用AWS CLI提供的aws configure命令创建凭证文件。您也可以通过使用文本编辑器编辑文件来创建它。有关凭证文件格式的信息,请参阅AWS凭证文件格式。

  4. Amazon ECS容器凭据 –如果设置了环境变量AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,则从Amazon ECS加载。适用于Java的AWS开发工具包使用ContainerCredentialsProvider加载这些凭证。

  5. 实例配置文件凭证 –在Amazon EC2实例上使用,并通过Amazon EC2元数据服务提供。适用于Java的AWS开发工具包使用InstanceProfileCredentialsProvider加载这些凭证。

因此,请使用ProfileCredentialsProvider或通过系统属性或环境变量传递凭据,然后使用SystemPropertyCredentialsProvider / EnvironmentVariableCredentialsProvider

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...