- S3控制台中存在清空S3存储桶的按钮,但在CLI或SDK中不存在
- 删除S3存储桶时,必须将其空删除才能删除。
- 可以用CLI中的
aws s3 rb --force
完成,但是很慢。
- 可以用CLI中的
- 您想清空它,但是我无法删除 +重新创建水桶,因为它取决于其他资源。
- 您必须等一天才能尝试使用S3的生命周期功能删除它
- 删除在版本上进行时很麻烦
我已经发布了一个解决这种痒感的OSS工具。
您现在可以非常容易且快速。
此外,您可以一次执行 (在搜索时)!
什么是
cli工具要清空(删除所有对象和版本/删除标记strong>)Amazon S3存储桶(AWS)。 桶本身也可以通过选项删除。
此工具允许您搜索存储桶名并删除或空多个存储桶。
源代码
以GO语言实现。请参阅GitHub。
特征
删除存储桶选项
最初,该工具旨在“清空水桶”,但是由于我要遇到麻烦,所以我还添加了一个选项(-f|--force
) “也删除了桶” 。
搜索存储桶名并删除多个存储桶
如下所述,您可以搜索存储桶名称并一次删除或空多个存储桶。
跨区域
在删除多个存储桶时,即使它们在多个区域中,您也可以一次删除它们。
版本控制
即使打开了版本控制,也可以像将其关闭一样将其清空。因此,您可以在不知道版本设置的情况下使用 。
可以删除的对象数量
CLI和SDK提供的Delete-Objects API具有的限制。数字没有限制。
并行处理
当有1000多个对象版本时,在并行处理中执行对象删除。
如上所述,最多可以使用SDK的1 API立即删除1,000个对象,因此并行执行每个单元。
因此,它很快。
作为测试,我准备了两个用相同10,000个对象(非常小的对象)的水桶,并尝试使用控制台上的“空”按钮和我创建的工具删除它们(本地环境/逻辑CPU Core Count 8)该工具分别在控制台和8秒的时间内花了22秒。 比控制台快3倍。
此外,使用 1000万个对象(包括版本和删除标记),删除在中完成了约100分钟。 (这取决于操作环境,所以我无法保证。)
重试503错误
当有数万个对象时,在极少数情况下,使用CLI或SDK一次删除它们时,S3 API侧可能会出现降低错误(503误差)。
发生这种情况时,CLS3通过添加了等待几秒钟并自动重试的机制来做出响应。
安装
自制
brew install go-to-k/tap/cls3
二进制
来源构建(开发版)
需要GO环境。
git clone https://github.com/go-to-k/cls3.git
cd cls3
make install
如何使用
cls3 -b <bucketName> [-b <bucketName>] [-p <profile>] [-r <region>] [-f|--force] [-i|--interactive]
选项
- -b, - - bucketname:可选
- 存储桶名
- 必须在不是交互式模式 中指定
- 否则(因此在交互式模式下),您不能指定此!
- 是可能的。
cls3 -b test1 -b test2
- -p, - profile:可选
- AWS个人资料名称
- -r, - 区域:可选(默认:
ap-northeast-1
)- AWS地区
- 没有必要意识到这一点,因为可以在各个地区使用 。
- -f,-force:可选
- forcemode(一起删除水桶)
- -i, - 交互式:可选
- 桶选择的交互式模式
交互式模式
bucketName选择
在交互式模式(-i
选项)中,您可以搜索存储桶名称并选择“存储桶”。
它被设计为可搜索和可删除的区域 ,因此可以使用而不是区域意识。
可以是空的。
❯ cls3 -i
Filter a keyword of bucket names: test-goto
然后您在UI中选择“存储桶”名称。
? Select buckets.
[Use arrows to move, space to select, <right> to all, <left> to none, type to filter]
> [x] test-goto-bucket-1
[ ] test-goto-bucket-2
[x] test-goto-bucket-3
最后
我创建了一个CLI工具,用于快速删除和S3存储桶的排空。
如果您喜欢!
可以使用它