我尝试将AWS识别与Java SDK结合使用。 我有下面的代码,但会引发异常:
private static final EnvironmentVariableCredentialsProvider CREDENTIALS_PROVIDER = new EnvironmentVariableCredentialsProvider();
public List<TextDetection> recognize(String bucket, String name) {
var amazonRekognition = createAmazonRekognition();
var detectTextRequest = new DetectTextRequest()
.withImage(getImage(bucket, name));
var detectTextResult = amazonRekognition.detectText(detectTextRequest);
return detectTextResult.getTextDetections();
}
private AmazonRekognition createAmazonRekognition() {
return AmazonRekognitionClientBuilder.standard()
.withCredentials(CREDENTIALS_PROVIDER)
.build();
}
private Image getImage(String bucket, String name) {
return new Image()
.withS3Object(new S3Object()
.withName(name)
.withBucket(bucket));
}
我已经创建了具有 AmazonS3FullAccess 和 AmazonRekognitionFullAccess 权限的新IAM。
当我运行execute方法时,它会抛出:
Unable to get image metadata from S3. Check object key, region and/or access permissions.
答案 0 :(得分:1)
我可以做一些事情来解决这个问题:
US_WEST_2
添加到AmazonRekognition
实例US_WEST_2
区域答案 1 :(得分:1)
AmazonRekognition和您的S3存储桶应位于同一区域。