在Scala中使用Java s3 sdk aws-java-sdk-s3:1.11.542
时,我得到的是“我们的记录中不存在您提供的AWS访问密钥ID”。
我已经验证我可以访问存储桶并运行命令,例如:aws s3 mv s3://{bucket} ./ --recursive
和aws s3 ls s3://{bucket}
。
我对客户的实施是:
implicit val s3Client: AmazonS3 = AmazonS3ClientBuilder
.standard
.withRegion(new DefaultAwsRegionProviderChain().getRegion)
.withCredentials(new DefaultAWSCredentialsProviderChain)
.build
我已经尝试过明确地使用BasicAWSCredentials
,EnvironmentVariableCredentialsProvider
和ProfileCredentialsProvider
。
编辑:我的默认配置文件出现问题,我正在使用okta
你可以使用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