如何删除以S3开头的S3文件

理查德·诺普

假设我在S3上有不同大小的图像:

137ff24f-02c9-4656-9d77-5e761d76a273.webp
137ff24f-02c9-4656-9d77-5e761d76a273_500_300.webp
137ff24f-02c9-4656-9d77-5e761d76a273_400_280.webp

我正在使用boto删除单个文件:

bucket = get_s3_bucket()
s3_key = Key(bucket)
s3_key.key = '137ff24f-02c9-4656-9d77-5e761d76a273.webp'
bucket.delete_key(s3_key)

但我想删除所有以137ff24f-02c9-4656-9d77-5e761d76a273开头的键。

请记住,存储桶中可能有数百个文件,所以我不想遍历所有文件。有没有办法只删除以某些字符串开头的文件?

也许一些正则表达式删除功能。

装饰

S3服务确实支持多删除操作,允许您在单个API调用中最多删除1000个对象。但是,此API调用不支持密钥的服务器端过滤。您必须提供要删除的密钥列表。

你可以自己动手。首先,您需要获取要删除的所有键的列表。

import boto

s3 = boto.connect_s3()
bucket = s3.get_bucket('mybucket')
to_delete = list(bucket.list(prefix='137ff24f-02c9-4656-9d77-5e761d76a273'))

list调用返回一个生成器,但我正在使用listso将该生成器转换为列表,该to_delete变量现在指向存储桶中与我提供的前缀匹配的所有对象的列表。

现在,我们需要从大列表中创建最多1000个对象的块,并使用该块来调用delete_keysbucket对象方法。

for chunk in [to_delete[i:i+1000] for i in range(0, len(to_delete), 1000)]:
    result = bucket.delete_keys(chunk)
    if result.errors:
        print('The following errors occurred')
        for error in result.errors:
            print(error)

有更有效的方法来执行此操作(例如,不将存储桶生成器转换为列表),并且在处理错误时您可能想做一些不同的事情,但这应该可以帮助您开始。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何删除以S3开头的S3文件

来自分类Dev

更新S3文件删除元数据

来自分类Dev

从管道AWS删除s3文件

来自分类Dev

如何清理从RedShift卸载的S3文件?

来自分类Dev

如何使用Node.js / Angular删除Amazon S3文件

来自分类Dev

如何删除包含空格和特殊字符的S3文件夹

来自分类Dev

关于S3文件传输中的权限

来自分类Dev

Nodejs Amazon S3文件上传

来自分类Dev

使用Rails App下载S3文件

来自分类Dev

Amazon S3文件从Android下载

来自分类Dev

更改s3文件上的标头

来自分类Dev

Swift / Objective S3文件上传

来自分类Dev

Spark RDD在S3文件上创建

来自分类Dev

使用Boto下载S3文件

来自分类Dev

Amazon S3文件从Android下载

来自分类Dev

使用Rails App下载S3文件

来自分类Dev

python aws s3文件分发

来自分类Dev

删除S3文件夹时是否可以应用通配符模式

来自分类Dev

如何让Carrierwave从S3删除文件?

来自分类Dev

如何确定我的用户正在下载新版本的S3文件?

来自分类Dev

如何从Lambda函数解析AWS S3文件

来自分类Dev

如何在Spark中处理增量S3文件

来自分类Dev

如何设置独特的AWS S3文件名?

来自分类Dev

如何在KeystoneJS中上传S3文件

来自分类Dev

如何从Scala的Glue Job中的S3文件创建动态数据框?

来自分类Dev

如何在Django中将S3文件附加到电子邮件

来自分类Dev

如何判断Spark使用什么AWS凭证读取S3文件?

来自分类Dev

下载期间如何解密AWS S3文件?

来自分类Dev

AWS S3文件上传:找不到S3Client类