AWS boto3 如何从密钥中获取元数据?

AWS boto3 how to get the metadata from the key?

我正在尝试获取上传到 s3 存储桶中的文件的元数据值

#我必须专门为项目中的其他 api 调用使用 boto3.resource('s3')。

我在元数据字段下有以下可用数据

#元数据


Key=Content-Type
Value= application/json

下面是代码

bucket= 'mybucket'
key='L1/input/file.json'
s3_resource = boto3.resource('s3')
object = s3_resource.Object(bucket,key)
metadata = object.metadata

但我遇到了以下错误

[ERROR] ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden

谁能帮我解决这个问题。

注意语法。这一行:

s3_client=boto3.resource('s3')

返回的是 resource,而不是 client

因此,此行失败:

obj = s3_client.head_object(bucket,key)

因为head_object()不是可以对resource执行的操作。

改为使用:

s3_resource = boto3.resource('s3')
object = s3_resource.Object('bucket_name','key')
metadata = object.metadata

它将提供元数据的字典。