如何从特定对象文件夹中的 s3 存储桶中删除数千个对象?

How to delete thousands of objects from s3 bucket with in specific object folder?

我在所有文件夹 gocc1、gocc2 等中有数千个对象

s3://awss3runner/gocc1/gocc2/goccf/

我只想从 goccf 及其版本中删除对象(50,000+)

import boto3
session = boto3.Session()
s3 = session.resource(service_name='s3')
#bucket = s3.Bucket('awss3runner','goccf')if we use this getting error
bucket = s3.Bucket('awss3runner') # (working but if we use this everything in the bucket getting deleted)
bucket.object_versions.delete()

是否可以删除 goccf 对象及其版本

您可以使用 S3 中的 DeleteObjects API (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html)

我会首先执行一个列表操作来枚举所有你想删除的对象,然后将它传递给 DeleteObjects。请务必小心,因为您可能会不小心删除存储桶中的其他对象。

另一个选项是使用 S3 生命周期策略,如果这将是一个 one-off 操作。使用生命周期策略,您可以在 S3 存储桶中指定路径并将对象设置为过期。它们将从您的 S3 存储桶中异步删除 https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-expire-general-considerations.html