好吧,我已经被困在这里一个多星期了,我知道这是个愚蠢的错误。只是搞不清楚。我正在做一个有两个平台的项目,安卓和iOS。这是一款面部识别应用。当我尝试从iOS应用程序和python脚本创建/访问集合时,它们都从我的AWS帐户访问相同的集合。
但是当我尝试从Android应用程序访问时,它会创建/访问它自己的集合。Android应用程序创建的集合除了这个Android应用程序之外,其他地方都无法访问,这个安卓应用程序也不能访问iOS应用程序或python创建的集合。
我试过在这三个平台上列出集合。iOS和Python列出了完全相同的集合,而Android应用程序列出的集合仅由android应用程序创建。
下面是我用来在android上列出集合的代码:
mCredentialsProvider = new CognitoCachingCredentialsProvider(
mContext.getApplicationContext(),
"us-east-2:4xbx0x6x-9xbx-xax7-x9xf-x5x0xexfx1xb", // Identity pool ID
Regions.US_EAST_2 // Region
);
mAmazonRekognitionClient = new AmazonRekognitionClient(mCredentialsProvider);
ListCollectionsResult listCollectionsResult = mAmazonRekognitionClient.listCollections(new ListCollectionsRequest().withMaxResults(20));
Log.i(TAG, listCollectionsResult.getCollectionIds().toString());
这是日志结果:
i_facesbxyxuxqxbxvxlxwx6x7xex5xmxfx,i_facestxnxaxoxoxqxaxwx4xtxuxwxoxrx,root_faces_data
这是我用来列出集合的python代码:
import boto3
client = boto3.client('rekognition')
response = client.list_collections()
print(response['CollectionIds'])
其结果是:
‘i_facesbxyxxqxbxvxlxwx6x7xex5xmxfx’,'root_faces_data‘
就这样。没别的了。只有这个密码。您可以看到,一个是显示3个集合,而另一个是显示两个。我在iOS应用程序中使用完全相同的区域和标识池ID,它列出了与python相同的集合。我认为iOS应用程序很好的原因是,iOS和python列出的集合是相同的。有什么我需要改变的吗?有什么额外的设置,我需要做的工作吗?请让我知道。谢谢。
发布于 2018-11-03 05:48:48
所以和大多数时候一样,我救了自己。结果发现,当我们在Android中向Rekognition客户端传递认知凭证时,它使用的区域与科尼托的区域不同。因此,我们也必须显式地设置Rekognition客户端的区域。如下所示:
mAmazonRekognitionClient.setRegion(Region.getRegion(Regions.US_EAST_2));
仅此而已。
https://stackoverflow.com/questions/53117918
复制相似问题