在AWS SDK中,匿名凭证指的是未提供任何访问密钥和秘密密钥的身份验证凭据。由于这些凭据没有有效的访问权限,因此它们不支持执行某些操作。
例如,当尝试使用匿名凭据执行Amazon S3操作(例如GetObject),则会导致错误消息“AWS AnonymousAWSCredentials do not support this operation”。
要解决此问题,可以使用具有有效访问密钥和秘密密钥的其他凭据来进行身份验证,或者确保尝试执行的操作受匿名凭证支持。以下是使用有效凭据的示例代码:
BasicAWSCredentials credentials = new BasicAWSCredentials("accessKey", "secretKey");
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withRegion(Regions.US_EAST_1)
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.build();
S3Object object = s3Client.getObject(new GetObjectRequest("my_bucket", "my_object_key"));
或者,可以在使用匿名凭证执行操作之前检查操作是否受支持,例如:
if (AmazonS3.isRequesterPaysEnabledForObject("my_bucket", "my_object_key", s3Client)) {
S3Object object = s3Client.getObject(new GetObjectRequest("my_bucket", "my_object_key"));
}