2015-03-19 50 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