-2

我已将我的 aws 凭据从 ~/.aws/credentials 移动到 maven project 的资源文件夹。文件夹结构看起来像这样 resources/aws/ ->config ->credentials 我正在使用 aws java sdk version 2+ 。如何从资源文件夹中读取值以获取区域、访问密钥、创建存储桶并执行操作。

4

1 回答 1

2

您不应将凭据文件放在资源目录中。AWS Java SDK支持~/.aws开箱即用的凭证文件:

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

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

  2. 环境变量–<strong>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

于 2020-08-31T15:17:47.547 回答