我正在尝试使用index_faces从图像中提取面孔。图像位于s3存储桶“ wedinjoy-events-images”内的文件夹中。
bucket = 'wedinjoy-events-images'
my_bucket = s3.Bucket(bucket)
try:
random_id = str(uuid.uuid1())
create_collection(random_id)
for i, s3_object in enumerate(my_bucket.objects.all()):
if s3_object.key.startswith("45c48cce2e2d7fbdea1afc51c7c6ad26"):
path, filename = os.path.split(s3_object.key)
print (s3_object)
print (path, filename)
face_result, unface_result = index_faces(random_id, bucket,
str(s3_object.key), str(s3_object.key).split("/")[1])
except Exception as e:
print("It has error", str(e))
pass
我收到以下错误,因为我的图像位于存储桶中的文件夹中,因此具有正斜杠。 示例图片网址:https://wedinjoy-events-images.s3.ap-south-1.amazonaws.com/45c48cce2e2d7fbdea1afc51c7c6ad26/f2346e354a4e398fdf322956eefe4889
调用IndexFaces操作时(ValidationException):1 检测到验证错误:值 “
45c48cce2e2d7fbdea1afc51c7c6ad26/7d52f78a8de4a8689e4a803686485d74
”位于 'externalImageId
'无法满足约束:成员必须满足 正则表达式模式:[a-zA-Z0-9_.\-:]+
答案 0 :(得分:0)
来自Boto 3文档:
ExternalImageId (字符串)-您要分配给图像中检测到的所有面部的ID。
这不应该是S3对象的键,但是您已将其设置为str(s3_object.key)
。该ID不能包含反斜杠字符。查看文档Skim