我尝试比较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获取对象元数据。检查对象密钥,区域和/或访问权限。 (服务:AmazonRekognition;状态代码:400;错误代码:InvalidS3ObjectException;请求ID:2c4720e3-0e67-11e9-a286-7761b1c828e5)
我认为,如果我输入IAM错误,该应用程序将无法上传文件。 我尝试使用相同的凭据提供商上传文件,上传成功。
我不认为这是由于允许而发生的事情。
S3地区位于首尔,Cognito IdentityPool地区位于AP_NORTHEAST_2
是否有任何信息可以通过Rekognition获得s3对象?
答案 0 :(得分:1)
我认为您必须使用rekognitionClient.setRegion()操作。
例如:amazonrekognitionClient.setRegion(Region.getRegion(Regions.US_EAST_1));
希望它会有所帮助。