使用对象标签删除存储桶中的对象

问题描述 投票:0回答:1

我必须基本上在s3存储桶中上传一些对象。完成后,我必须使用put_object_tagging()进行对象标记。现在,我尝试基于这些标签过滤对象,以便可以删除基于标签的对象。我完全被感动了。

while j!=10:
  if j%2==0:
  response1 = client.put_object_tagging(
      Bucket='shivam1052061',
      Key='%d.txt' % (j),
      Tagging={
          'TagSet': [
              {
                  'Key': 'notdivby2',
                  'Value': '2no'
              },
          ]
       }
    )
 j=j+1
amazon-web-services tags boto3 delete-file
1个回答
0
投票

我认为这会起作用,

import boto3

s3 = boto3.client('s3')

contents = s3.list_objects(Bucket='shivam1052061').get('Contents')
delkeys = []

for content in contents:
    try:
        response = s3.get_object_tagging(
            Bucket='shivam1052061',
            Key=content.get('Key')
        )

        if response.get('TagSet').get('Key') == 'notdivby2' and response.get('TagSet').get('Value') == '2no':
            delkeys.append(key)
    except:
        pass

print(delkeys)

但是要花很多次。无法自然地用标签过滤对象,因此您可以调用对象列表,然后再次调用该对象的每个标签,检查所需标签,然后删除delkeys

© www.soinside.com 2019 - 2024. All rights reserved.