0

在 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

谢谢!

4

1 回答 1

0

S3 实际上忽略了 PUT 请求中的这些参数。

于 2017-07-12T16:07:50.473 回答