问题描述
我已将AWS凭证从〜/ .aws / credentials移至maven project的资源文件夹。文件夹结构如下所示 资源/ aws / ->配置 ->凭证 我正在使用AWS Java SDK 2+版本。如何从资源文件夹中读取值以获取区域,访问键,创建存储桶并执行操作。
解决方法
您不应将凭证文件放在资源目录中。现成~/.aws
中的AWS Java SDK supports凭证文件:
以下列表显示了受支持的凭据检索技术:
Java系统属性 –
aws.accessKeyId
和aws.secretAccessKey
。适用于Java的AWS开发工具包使用SystemPropertyCredentialsProvider
加载这些凭证。环境变量 – AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 。适用于Java的AWS开发工具包使用
EnvironmentVariableCredentialsProvider
类来加载这些凭证。默认凭据配置文件 –该文件的具体位置可能因平台而异,但通常位于
~/.aws/credentials
。该文件由许多AWS开发工具包和AWS CLI共享。适用于Java的AWS开发工具包使用ProfileCredentialsProvider
加载这些凭证。您可以使用AWS CLI提供的aws configure命令创建凭证文件。您也可以通过使用文本编辑器编辑文件来创建它。有关凭证文件格式的信息,请参阅AWS凭证文件格式。
Amazon ECS容器凭据 –如果设置了环境变量
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
,则从Amazon ECS加载。适用于Java的AWS开发工具包使用ContainerCredentialsProvider
加载这些凭证。实例配置文件凭证 –在Amazon EC2实例上使用,并通过Amazon EC2元数据服务提供。适用于Java的AWS开发工具包使用
InstanceProfileCredentialsProvider
加载这些凭证。
因此,请使用ProfileCredentialsProvider
或通过系统属性或环境变量传递凭据,然后使用SystemPropertyCredentialsProvider
/ EnvironmentVariableCredentialsProvider
。