0

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

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

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

#元数据


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

谁可以帮我这个事。

4

1 回答 1

3

小心你的语法。这一行:

s3_client=boto3.resource('s3')

正在返回 a resource,而不是 a 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

它将提供元数据的字典。

于 2021-10-10T10:14:54.340 回答