您提供的AWS Access Key ID在我们的记录中不存在 - 对于Java SDK而不是CLI,凭据失败

问题描述 投票:0回答:1

在Scala中使用Java s3 sdk aws-java-sdk-s3:1.11.542时,我得到的是“我们的记录中不存在您提供的AWS访问密钥ID”。

我已经验证我可以访问存储桶并运行命令,例如:aws s3 mv s3://{bucket} ./ --recursiveaws s3 ls s3://{bucket}

我对客户的实施是:

implicit val s3Client: AmazonS3 = AmazonS3ClientBuilder
      .standard
      .withRegion(new DefaultAwsRegionProviderChain().getRegion)
      .withCredentials(new DefaultAWSCredentialsProviderChain)
      .build

我已经尝试过明确地使用BasicAWSCredentialsEnvironmentVariableCredentialsProviderProfileCredentialsProvider

编辑:我的默认配置文件出现问题,我正在使用okta

java scala amazon-web-services amazon-s3 sdk
1个回答
0
投票

你可以使用AWSCredentialsProvider API

implicit val awsCredentialsProvider = new AWSCredentialsProvider {    
          override def getCredentials = new BasicAWSCredentials(AWSKey, AWSSecret)
          override def refresh(): Unit = ??? 
    }

并使用awsCredentialsProvider创建一个AmazonS3ClientBuilder.

implicit val s3Client: AmazonS3 = AmazonS3ClientBuilder
      .standard
      .withCredentials(awsCredentialsProvider)
      .withRegion(new DefaultAwsRegionProviderChain().getRegion)
      .build
© www.soinside.com 2019 - 2024. All rights reserved.