嗨,我正在一个项目中,我在s3存储桶中有一个源图像,我想将其与本地计算机中的图像进行比较。我已经设置了aws cli。这是代码。我的图像位于名称为“ s.jpg”的某个存储桶“ bx”中。现在,我想阅读它,所以我调用了get_object方法,并使用open()进行了读取,但是没有用。
import boto3
import os
if __name__ == "__main__":
path2 = '/home/vivek/Desktop/tar/'
t=[j for j in os.listdir(path2)]
buck=boto3.client('s3')
obj=buck.get_object(Bucket='bx',Key='s.jpg')
imageSource=open(obj['Body'],'rb')
for targetFile in t:
client=boto3.client('rekognition')
imageTarget=open(targetFile,'rb')
response=client.compare_faces(SimilarityThreshold=70,
SourceImage={'Bytes': imageSource.read()},
TargetImage={'Bytes': imageTarget.read()})
我得到一个错误:
vivek@skywalker:~/Desktop/code$ python3 y.py
Traceback (most recent call last):
File "y.py", line 9, in <module>
imageSource=open(obj['Body'],'rb')
TypeError: expected str, bytes or os.PathLike object, not StreamingBody