Boto3 api 提供了一种方法来获取存储在 s3 中的对象的元数据。以下 sn-p 将有助于通过编程方式获取元数据:
>>> s3_cli = boto3.client('s3')
>>> s3_resp = s3_cli.head_object(Bucket='ventests3', Key='config/ctl.json')
>>> print pprint.pprint(s3_resp)
>>> pp.pprint(s3_resp)
{u'AcceptRanges': 'bytes',
u'ContentLength': 4325,
u'ContentType': 'binary/octet-stream',
u'ETag': '"040c003386f1e2001816d32f2125d07a"',
u'LastModified': datetime.datetime(2018, 9, 20, 7, 15, 3, tzinfo=tzutc()),
u'Metadata': {},
'ResponseMetadata': {'HTTPHeaders': {'accept-ranges': 'bytes',
'content-length': '4325',
'content-type': 'binary/octet-stream',
'date': 'Thu, 20 Sep 2018 07:20:53 GMT',
'etag': '"040c003386f1e2001816d32f2125d07a"',
'last-modified': 'Thu, 20 Sep 2018 07:15:03 GMT',
'server': 'AmazonS3',
'x-amz-id-2': 'P2wapOciWCKPfol2sBgoo11tRdr4KwKcDJ/nHW7LZn00mvKfMYyfAPPV2tIcf3Vu+lrV57NBARY=',
'x-amz-request-id': '42AF970E7C9AA18C'},
'HTTPStatusCode': 200,
'HostId': 'P2wapOciWCKPfol2sBgoo11tRdr4KwKcDJ/nHW7LZn00mvKfMYyfAPPV2tIcf3Vu+lrV57NBARY=',
'RequestId': '42AF970E7C9AA18C',
'RetryAttempts': 0}}
>>> s3obj_etag = s3_resp['ETag'].strip('"')
>>> print s3obj_etag
'040c003386f1e2001816d32f2125d07a'
s3 客户端对象中的 head_object() 方法将获取存储在 s3 存储桶中的给定对象的元数据(标头)。