AWS Rekognition 抛出异常无法从 S3 获取图像元数据

AWS Rekognition throws exception Unable to get image metadata from S3

我尝试将 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));
    }

我创建了一个具有 AmazonS3FullAccessAmazonRekognitionFullAccess.

权限的新 IAM

当我 运行 它抛出的执行方法时:

Unable to get image metadata from S3. Check object key, region and/or access permissions.

我做了几件事就解决了这个问题:

  • 我已将区域 US_WEST_2 添加到 AmazonRekognition 实例
  • S3 存储桶已移至 US_WEST_2 区域

AmazonRekognition 和您的 S3 存储桶应该位于同一区域。

supported region