使用 AWS Rekognition 错误比较两个图像

Compare two images by using AWS Rekognition error

我尝试比较 s3 中的两个图像。 所以我参考以下内容完成了代码: https://docs.aws.amazon.com/ko_kr/rekognition/latest/dg/faces-comparefaces.html

我创建了具有角色(S3 完全访问权限、Rekognition 完全访问权限)的 IdentityPool。

try{

            CompareFacesRequest compareFacesRequest = new CompareFacesRequest().
                    withSourceImage(new Image().withS3Object(new S3Object().withName(photo1).withBucket(bucket))).
                    withTargetImage(new Image().withS3Object(new S3Object().withName(photo2).withBucket(bucket))).withSimilarityThreshold(80F);

            CompareFacesResult result = amazonRekognitionClient.compareFaces(compareFacesRequest);
            List<CompareFacesMatch> list = result.getFaceMatches();

            Log.d(TAG,"testing..");

            if (!list.isEmpty()){

                Log.d(TAG,"face match");

                for (CompareFacesMatch match:list){
                    Log.d(TAG,match.getFace() + "" + match.getSimilarity());
                }

            }else{

                Log.d(TAG,"face dismatch");

            }

        }catch (Exception e){

            Log.d(TAG,"Exception occurs");
            e.printStackTrace();

        }

但它会犯那个错误。 com.amazonaws.services.rekognition.model.InvalidS3ObjectException:无法从 S3 获取对象元数据。检查对象键,区域 and/or 访问权限。 (服务:AmazonRekognition;状态代码:400;错误代码:InvalidS3ObjectException;请求 ID:2c4720e3-0e67-11e9-a286-7761b1c828e5)

我想如果我弄错了IAM,应用程序无法上传文件。 我尝试使用相同的 credentialsProvider 上传文件,上传成功。

我不认为这是因为许可而发生的事情。

S3 区域在首尔,Cognito IdentityPool 区域AP_NORTHEAST_2

是否有关于使用 Rekognition 获取 s3 对象的任何信息?

我认为你必须使用 rekognitionClient.setRegion() 操作。

例如:亚马逊rekognitionClient.setRegion(Region.getRegion(地区。US_EAST_1));

希望对您有所帮助。