gpt4 book ai didi

amazon-s3 - 使用 boto3 客户端检索 s3 对象的 Etag

转载 作者:行者123 更新时间:2023-12-03 18:40:57 26 4
gpt4 key购买 nike

有一种场景,我需要验证存储在 s3 存储桶中的文件的校验和(md5)。这可以在上传文件时通过在 api 调用的元数据中指定校验和值来实现。但就我而言,我想在以编程方式将数据放入存储桶后验证校验和。 S3 中的每个对象都有一个名为“ETag”的属性,它是 S3 计算的 md5 校验和。

无论如何要获取特定对象的 ETag 并在 python 脚本中使用 boto3 客户端比较存储在 s3 中的本地文件和文件的校验和?

最佳答案

Boto3 api 提供了一种获取存储在 s3 中的对象的元数据的方法。以下代码段将有助于以编程方式获取元数据:

>>> 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 存储桶中的给定对象的元数据( header )。

关于amazon-s3 - 使用 boto3 客户端检索 s3 对象的 Etag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52402421/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com