在 boto2 上,我们可以使用 Key 对象的名称作为键以及将与 PUT 请求一起发送的 headers dict 参数中的前提条件(即 If-Match、If-None-Match 等)来存储一个对象。
例子:
# assume both bucket and key are created beforehand
fp_a = FakeWriteFile(file_size, 'A')
key.set_content_from_file(fp_a, headers={'If-Match': '*'})
现在对于 boto3,至少有几个 API 可以让我们将对象放入存储桶中,例如:
fp_a = FakeWriteFile(file_size, 'A')
bucket.Object('foo').put(Body=fp_a)
或者,使用低级 S3 客户端:
bucket.put_object(Key='foo', Body=fp_a)
对于上面关于boto3的两种情况,我需要在哪里添加前提条件以确保如果这些PUT请求满足所有条件,则类似于boto2的带有前提条件的headers参数?我试图查找有关 boto3 API DOC 的信息,但这些先决条件仅针对 GET 操作设置:https ://boto3.readthedocs.io/en/latest/reference/services/s3.html
谢谢!