【最佳实践】腾讯云COS删除文件和目录的各种方法

  • 2019 年 12 月 21 日
  • 筆記

大家在使用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名称,进入存储桶界面

存储桶界面

存储桶界面内可以根据需要执行不同的删除

某个bucket界面

ps:需要注意的是,如果选择清空存储桶,则执行完清空操作之前都不能退出页面,对于文件量很大删除较久的bucket不太适用,那么对于文件量很大的bucket,如何执行删除比较合适呢?请看接下来的另一个方式

2、使用COSCMD工具进行删除

COSCMD工具获取和使用介绍文档https://cloud.tencent.com/document/product/436/10976

按照文档安装好工具之后,建议编辑~/.cos.conf文件设置好秘钥和bucket信息(如下),使用coscmd delete即可

COSCMD配置文件

删除单个文件

#命令格式  coscmd delete <cospath>  #操作示例  coscmd delete 123/test.jpg

删除目录

#命令格式  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)

[qcloud]  aws_access_key_id = 腾讯云api秘钥的SecretId  aws_secret_access_key = 腾讯云api秘钥的SecretKey

2)使用命令行执行删除:aws –profile=qcloud –endpoint-url=http://cos.此处填区域.myqcloud.com s3 rm s3://此处填bucketname-appid/ ,后边加需要的参数(比如aws –profile=qcloud –endpoint-url=http://cos.ap-chengdu.myqcloud.com s3 rm s3://test1-1256699999/ –recursive –exclude "123/*" –exclude "234/*" 表示删除ap-chengdu的1256699999账号的test1这个bucket下123和234这两个目录之外的所有文件和目录),执行效果如下

awscli执行效果图

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工具。