我必须基本上在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
我认为这会起作用,
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
。