gpt4 book ai didi

java - aws.accessKeyId 和 aws.secretKey 未被读取

转载 作者:行者123 更新时间:2023-12-02 04:33:33 25 4
gpt4 key购买 nike

我有一个使用 S3 存储桶的 Spring Boot 应用程序。根据亚马逊(https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/java-dg-roles.html)的说法,顺序应该是:

  1. In system environment variables: AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
  2. In the Java system properties: aws.accessKeyId and aws.secretKey.
  3. In the default credentials file (the location of this file varies by platform).
  4. In the instance profile credentials, which exist within the instance metadata associated with the IAM role for the EC2 instance.

但是我的代码忽略了 application.properties 中的 aws.accessKeyId 和 aws.secretKey。

public AmazonS3 getS3Client() {
AWSCredentialsProviderChain instanceProvider = new AWSCredentialsProviderChain();
AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard();
builder.setCredentials(instanceProvider);
builder.setRegion(region);
return builder.build();
}

当我在 EC2 实例上使用它时它可以工作,但当我尝试在本地使用它进行开发时它会失败。

更新:

也尝试过

        DefaultAWSCredentialsProviderChain instanceProvider = new DefaultAWSCredentialsProviderChain();
System.out.println(instanceProvider.getCredentials().getAWSAccessKeyId());
System.out.println(instanceProvider.getCredentials().getAWSSecretKey());
return AmazonS3ClientBuilder.standard().withCredentials(instanceProvider).withRegion(region).build();

它也失败了。当我打印访问 key 时,它显示正确的值和不同的 secret (我认为由于安全原因它是加密的)。如果我使用 BasicCredentials 它就可以工作。

BasicAWSCredentials creds = new BasicAWSCredentials(keyName, secretKey);
return AmazonS3ClientBuilder.standard().withRegion(region)
.withCredentials(new AWSStaticCredentialsProvider(creds)).disableChunkedEncoding().build();

最佳答案

我不确定您发布的代码如何在 EC2 上运行,因为 AWSCredentialsProviderChain需要一个提供者列表。

你想要的是 DefaultAWSCredentialsProviderChain .

但是,您不需要显式凭证提供程序(这可能就是它起作用的原因),因为 AmazonS3ClientBuilder.standard() 创建一个具有所有默认设置的构建器(其中包括默认提供程序)链)。

如果更改类不能解决您的问题,那么您需要编辑您的问题以显示 (1) 您正在使用的命令行(编辑键),以及 (2) 确切的错误消息,从终端复制。

关于java - aws.accessKeyId 和 aws.secretKey 未被读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56563245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com