2015-03-19 51 views
3

我想尝试amazone功能delete multiple object,但使用 boto或aws。Amazon S3使用aws或boto删除多个对象

我该如何使用boto或aws来发布POST请求? 下面是东西,我想尝试:

POST /?delete HTTP/1.1 
Host: bucketname.s3.amazonaws.com 
Authorization: authorization string 
Content-Length: Size 
Content-MD5: MD5 

<?xml version="1.0" encoding="UTF-8"?> 
<Delete> 
    <Quiet>true</Quiet> 
    <Object> 
     <Key>Key</Key> 
     <VersionId>VersionId</VersionId> 
    </Object> 
    <Object> 
     <Key>Key</Key> 
    </Object> 
    ... 
</Delete>   

干杯

回答

5

博托提供MultiDelete支持。这里是你如何使用它的一个例子:

import boto.s3 
conn = boto.s3.connect_to_region('us-east-1') # or whatever region you want 
bucket = conn.get_bucket('mybucket') 
keys_to_delete = ['mykey1', 'mykey2', 'mykey3', 'mykey4'] 
result = bucket.delete_keys(keys_to_delete) 

结果将提供有关该删除操作是成功的,如果有的话,失败的信息。如果您想要Quiet模式仅告诉您有关故障,请将quiet=True传递给delete_keys呼叫。

+0

它使用多重删除功能,还是它在使用for循环? – user2563547 2015-03-19 13:24:11

+1

boto中的''delete_keys''方法使用S3的MultiDelete特性。 – garnaat 2015-03-19 13:53:48