我已将我的 aws 凭据从 ~/.aws/credentials 移动到 maven project 的资源文件夹。文件夹结构看起来像这样 resources/aws/ ->config ->credentials 我正在使用 aws java sdk version 2+ 。如何从资源文件夹中读取值以获取区域、访问密钥、创建存储桶并执行操作。
1 回答
您不应将凭据文件放在资源目录中。AWS Java SDK支持~/.aws
开箱即用的凭证文件:
以下列表显示了支持的凭据检索技术:
Java 系统属性–<code>aws.accessKeyId 和
aws.secretAccessKey
. 适用于 Java 的 AWS 开发工具包使用SystemPropertyCredentialsProvider
加载这些凭证。环境变量–<strong>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
。