如果target_list中存在source_list中的项,则从S3存储桶中删除s3对象

时间:2019-09-04 20:12:52

标签: boto3

如果source_list中的某个项目存在于target_list中,则我试图从S3存储桶中删除s3对象。

source_list:

['ALH_LXN_RESPONSE_9.json',
'ALH_LXN_RESPONSE_10.json']

target_list:

['ALH-LXN-RESPONSE.json',
 'ALH_LXN_RESPONSE_1.json',
  'ALH_LXN_RESPONSE_2.json',
 'ALH_LXN_RESPONSE_3.json',
 'ALH_LXN_RESPONSE_4.json',
 'ALH_LXN_RESPONSE_5.json',
 'ALH_LXN_RESPONSE_6.json',
 'ALH_LXN_RESPONSE_7.json',
 'ALH_LXN_RESPONSE_8.json',
 'ALH_LXN_RESPONSE_9.json',
 'ALH_LXN_RESPONSE_10.json']

在这种情况下,我需要删除“ ALH_LXN_RESPONSE_9.json”, “ ALH_LXN_RESPONSE_10.json”。

s3_resource = session.resource('s3')
my_bucket = s3_resource.Bucket("dw-duwr-84829492409")

1 个答案:

答案 0 :(得分:0)

尝试此示例代码

def delete_objects_from_S3():

    source_list = ['ALH_LXN_RESPONSE_9.json', 'ALH_LXN_RESPONSE_10.json']
    target_list = ['ALH-LXN-RESPONSE.json', 'ALH_LXN_RESPONSE_1.json', 'ALH_LXN_RESPONSE_2.json',
                   'ALH_LXN_RESPONSE_3.json', 'ALH_LXN_RESPONSE_9.json', 'ALH_LXN_RESPONSE_10.json']

    commonObjects = [e for e in source_list if e in '\n'.join(target_list)]

    s3 = boto3.resource('s3')

    for item in commonObjects:
        s3.Object('your_bucketName', item).delete()