当AWS Rekognition抛出异常“无法从S3获取图像元数据”时,可能是由于以下几个原因引起的:
S3桶访问权限不正确:确保您具有足够的权限来访问S3桶中的图像文件。
图像文件路径不正确:确保您提供给AWS Rekognition的图像文件路径是正确的。
下面是使用AWS SDK for Python(Boto3)处理此异常的示例代码:
import boto3
def detect_labels(bucket, key):
rekognition = boto3.client('rekognition')
try:
response = rekognition.detect_labels(
Image={
'S3Object': {
'Bucket': bucket,
'Name': key
}
}
)
labels = response['Labels']
for label in labels:
print(label['Name'], label['Confidence'])
except rekognition.exceptions.InvalidS3ObjectException as e:
print("无法从S3获取图像元数据: ", e)
# 使用示例
bucket = 'your_bucket_name'
key = 'your_image_key'
detect_labels(bucket, key)
在上面的示例中,我们使用boto3.client('rekognition')创建了一个AWS Rekognition客户端,并调用detect_labels函数来检测图像中的标签。如果在此过程中抛出InvalidS3ObjectException异常,将打印出错误消息"无法从S3获取图像元数据"。
确保替换示例代码中的your_bucket_name和your_image_key为您自己的S3桶名称和图像键。
另外,确保您的AWS配置文件中已正确设置了访问密钥和区域。您可以使用aws configure命令或手动编辑~/.aws/credentials和~/.aws/config文件来配置它们。
希望这个示例代码可以帮助您解决AWS Rekognition抛出的异常问题。