大家在使用COS存储的过程中,会遇到一个场景:出于各种各样的原因比如业务调整,需要清理COS当中的大量文件。腾讯云支持多种多样的清理方法,常见的方法如下:
- 控制台手动删除
- COSCMD命令行工具删除
- 第三方工具
- COSBrowser工具删除
- api和sdk删除
下面就各个删除方法汇总介绍一下:
1、登录控制台进行删除
可参考官网文档
https://cloud.tencent.com/document/product/436/35247
https://cloud.tencent.com/document/product/436/13323
打开https://console.cloud.tencent.com/cos5/bucket页面,点击具体的bucket名称,进入存储桶界面
存储桶界面内可以根据需要执行不同的删除
ps:需要注意的是,如果选择清空存储桶,则执行完清空操作之前都不能退出页面,对于文件量很大删除较久的bucket不太适用,那么对于文件量很大的bucket,如何执行删除比较合适呢?请看接下来的另一个方式
2、使用COSCMD工具进行删除
COSCMD工具获取和使用介绍文档https://cloud.tencent.com/document/product/436/10976
按照文档安装好工具之后,建议编辑~/.cos.conf文件设置好秘钥和bucket信息(如下),使用coscmd delete即可
删除单个文件
代码语言:javascript复制#命令格式
coscmd delete <cospath>
#操作示例
coscmd delete 123/test.jpg
删除目录
代码语言:javascript复制#命令格式
coscmd delete -r <cospath>
#操作示例
coscmd delete -r /123/
coscmd delete -r / 该命令相当于清空bucket
ps:删除操作属于高危操作,数据删除后不可找回,建议先创建一个测试bucket测试验证之后再对线上bucket进行操作。COSCMD能实现的功能跟控制台提供的功能一样,但是作为用户来讲,可能会有更细致的删除需求,比如删除指定目录之外的其他所有文件,这个怎么实现呢?咱们来看一下另一种方法
3、使用aws的工具进行删除
腾讯云出于一些特殊原因,没有支持太多的删除方法,但是腾讯云兼容了aws的s3对于cos的操作,下面我们简单介绍下如何使用aws工具删除cos指定目录之外的文件(aws的s3删除操作参考https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html)
1)首先需要自行安装aws的cli工具(可到aws官网获取),然后Shell 的配置文件脚本(这里以 ~/.bash_profile为例)中将aws安装目录添加到环境变量中,比如export PATH=~/.local/bin:$PATH,然后执行source ~/.bash_profile,然后使用腾讯云的ID和秘钥执行aws configure设置,然后修改~/.aws/credentials为下述格式(主要是把default改为qcloud)
代码语言:javascript复制[qcloud]
aws_access_key_id = 腾讯云api秘钥的SecretId
aws_secret_access_key = 腾讯云api秘钥的SecretKey
2)使用命令行执行删除:aws --profile=qcloud --endpoint-url=http://cos.此处填区域.myzijiebao.com s3 rm s3://此处填bucketname-appid/ ,后边加需要的参数(比如aws --profile=qcloud --endpoint-url=http://cos.ap-chengdu.myzijiebao.com s3 rm s3://test1-1256699999/ --recursive --exclude "123/*" --exclude "234/*" 表示删除ap-chengdu的1256699999账号的test1这个bucket下123和234这两个目录之外的所有文件和目录),执行效果如下
ps:由于是第三方的awscli工具,存在一定的不可控因素,进行删除操作之前,建议先在测试用的bucket进行测试,确认无误之后再对线上bucket进行操作
4、使用COSBrowser工具进行删除
COSBrowser工具比较简单,只需下载客户端登录执行操作即可,相关操作可以参考腾讯云官网文档介绍https://cloud.tencent.com/document/product/436/11366
ps:当bucket内文件和目录数量很大的时候,COSBrowser工具可能需要手工点选很多次,还是推荐使用命令行工具进行处理
5、使用api和sdk进行删除
可参考官网文档介绍
api直达https://cloud.tencent.com/document/product/436/7751
sdk直达https://cloud.tencent.com/document/product/436/6474
最新版的api和sdk,没有像旧版一样提供专门的各种目录操作,比较适合用于文件粒度的操作场景。
总体来讲,执行目录删除比较便捷的方案是使用命令行工具,文件和目录数量较小的时候可以使用控制台或者COSBrowser工具。