2016-08-12 74 views
1

删除从S3存储的特定按键或钥匙这boto3 function允许从S3存储键的列表中删除。请你可以演示一个如何使用它的例子:演示如何使用boto3

  1. 一个要删除的密钥。
  2. 要删除的多个键的列表。

与感谢。

delete_objects(**kwargs) 
This operation enables you to delete multiple objects from a bucket using a single HTTP request. You may specify up to 1000 keys. 

Request Syntax 

response = bucket.delete_objects(
    Delete={ 
     'Objects': [ 
      { 
       'Key': 'string', 
       'VersionId': 'string' 
      }, 
     ], 
     'Quiet': True|False 
    }, 
    MFA='string', 
    RequestPayer='requester' 
) 

回答

1

删除一个对象:

response = bucket.delete_objects(
    Delete={ 
     'Objects': [ 
      { 
       'Key': 'myObjectKey' 
      } 
     ] 
    } 
) 

删除两个对象:

response = bucket.delete_objects(
    Delete={ 
     'Objects': [ 
      { 
       'Key': 'myFirstObjectKey' 
      }, 
      { 
       'Key': 'mySecondObjectKey' 
      } 
     ] 
    } 
) 

我觉得像文档(您链接)使得这种极为明显。我很好奇你是如何发现文档混淆的。

+0

许多感谢的解释,这是你的暗示,即排序的问题。被术语纠缠在一起;键在S3存储键中,但也是在Python字典键:值中的键。 ;-) – GoFaster

0

答:

# Delete key(s) 
forDeletion = [{'Key':'IMG_20160807_150118.jpg'}, {'Key':'IMG_20160807_150124.jpg'}] 
response = bucket.delete_objects(Delete={'Objects': forDeletion}) 

for elem in response.get('Deleted'): 
    print(elem['Key']) 

输出:

IMG_20160807_150118.jpg 
IMG_20160807_150124.jpg