腾讯云对象存储COSCMD工具命令式批量管理存储桶文件

对于腾讯云对象存储文件管理方式,我们大部分网友会通过COSBrowser可视化工具对文件进行上传、下载,以及存储桶的创建管理。这样操控的缺点就是,对于一般小型项目管理文件还是比较轻松的,毕竟需要处理的文件并不是太多,即便稍微有点效率慢,我们等一等也无所谓。

老蒋在昨天"腾讯云对象存储COS Migration工具实现多平台存储迁移至COS方法"文章中有介绍到一款官方提供的COS Migration工具可以快速的将目前友商的对象存储文件或者我们本地的,甚至远程URL聚合的地址静态文件迁移到COS中。但是,如果我们需要一款工具批量对COS对象存储中的文件批量管理,那用什么工具呢?

在这篇文章中,老蒋继续介绍来自官方对象存储COSCMD工具,可以批量创建存储桶、批量上传、下载和删除COS文件,这个对于有需要批量将本地文件或者下载到本地备份的,可能会有需要。当然这个工具是命令行操作的,需要在命令行中操作,如果有需要的可以试试。官方文档地址:https://cloud.tencent.com/document/product/436/10976

第一、系统支持和安装环境

系统需要支持Python 2.7/3.5/3.6,而且需要是最新版的pip,然后才可以继续执行命令行。

pip install coscmd

安装coscmd。安装完毕之后我们可以检查版本,且后面可以用命令更新pip。

pip install coscmd -U

腾讯云对象存储COSCMD工具命令式批量管理存储桶文件

第二、COSCMD 工具配置方法

COSCMD 工具在使用前需要进行参数配置,用户可以通过如下命令来配置。

coscmd config [OPTION]...<FILE>...
[-h] --help
[-a] <SECRET_ID>
[-s] <SECRET_KEY>
[-t] <TOKEN>
[-b] <BucketName-APPID>
[-r] <REGION> | [-e] <ENDPOINT>
[-m] <MAX_THREAD>
[-p] <PART_SIZE>
[--do-not-use-ssl] [--anonymous]

示范:

coscmd config -a AChT4ThiXAbpBDEFGhT4ThiXAbp**** -s WE54wreefvds3462refgwewe**** -b examplebucket-1250000000 -r ap-beijing

参数配置说明:

选项 参数说明 是否必选 有效值
-a 密钥 ID 请前往 API 密钥控制台 获取 字符串
-s 密钥 Key 请前往 API 密钥控制台 获取 字符串
-t 临时密钥 token,当使用临时密钥时需要配置,设置 x-cos-security-token 头部 字符串
-b 指定的存储桶名称,存储桶的命名格式为 BucketName-APPID,请参见 命名规范 字符串
-r 存储桶所在地域,请参见 地域和访问域名 字符串
-e 设置请求的 ENDPOINT,设置 ENDPOINT 参数后,REGION 参数会失效 字符串
-m 多线程操作的最大线程数(默认为5,范围为1 - 30) 数字
-p 分块操作的单块大小(单位MB,默认为1MB,范围为1 - 1000) 数字
--do-not-use-ssl 使用 HTTP 协议,而不使用 HTTPS 字符串
--anonymous 匿名操作(不携带签名) 字符串

如果我们通过操作命令感觉困难,可以直接下载"~/.cos.conf"文件,然后编辑后再替换。示范:

[common] secret_id = AChT4ThiXAbpBDEFGhT4ThiXAbp****
secret_key = WE54wreefvds3462refgwewe****
bucket = examplebucket-1250000000
region = ap-beijing
max_thread = 5
part_size = 1
schema = https

第三、常规的COSCMD操作

1、指定 Bucket 和 Region 的命令

通过-b <BucketName-APPID>指定 Bucket, 可以指定特定的 Bucket。存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式。通过-r <region>指定 Region, 可以指定特定的 Region。

#命令格式
coscmd -b <BucketName-APPID> -r <region> <action> ...
#操作示例-创建bucket
coscmd -b examplebucket-1250000000 -r ap-beijing createbucket
#操作示例-上传文件
coscmd -b examplebucket-1250000000 -r ap-beijing upload exampleobject exampleobject

2、创建存储桶

建议配合-b <BucketName-APPID>指定 Bucket 和-r <region>指定 Region 使用。

#命令格式
coscmd -b <BucketName-APPID> createbucket
#操作示例
coscmd createbucket
coscmd -b examplebucket-1250000000 -r ap-beijing createbucket

3、删除存储桶

建议配合-b <BucketName-APPID>指定 Bucket 和-r <region>指定 Region 使用。

#命令格式
coscmd -b <BucketName-APPID> deletebucket
#操作示例
coscmd deletebucket
coscmd -b examplebucket-1250000000 -r ap-beijing deletebucket
coscmd -b examplebucket-1250000000 -r ap-beijing deletebucket -f

4、上传文件或文件夹

a. 上传文件命名

#命令格式
coscmd upload <localpath> <cospath>
#操作示例
#将本地的 /data/exampleobject 文件上传到 cos 的 data/exampleobject 路径下
coscmd upload /data/exampleobject data/exampleobject
coscmd upload /data/exampleobject data/
#指定头部上传文件
#指定对象类型,上传一个归档的文件
coscmd upload /data/exampleobject data/exampleobject -H "{'x-cos-storage-class':'Archive'}"
#设置 meta 元属性
coscmd upload /data/exampleobject data/exampleobject -H "{'x-cos-meta-example':'example'}"

b. 上传文件夹命令

#命令格式
coscmd upload -r <localpath> <cospath>
#操作示例
coscmd upload -r /data/examplefolder data/examplefolder
#cos上的存储路径为 examplefolder2/examplefolder
coscmd upload -r /data/examplefolder examplefolder2/
#上传到 bucket 根目录
coscmd upload -r /data/examplefolder/ /
#同步上传,跳过 md5 相同的文件
coscmd upload -rs /data/examplefolder data/examplefolder
#同步上传,删除本地已经删除的文件
coscmd upload -rs --delete /data/examplefolder data/examplefolder
#忽略 .txt 和 .doc 的后缀文件
coscmd upload -rs /data/examplefolder data/examplefolder --ignore *.txt,*.doc

5、下载文件或者文件夹

a. 下载文件命令

#命令格式
coscmd download <cospath> <localpath>
#操作示例
coscmd download data/exampleobject /data/exampleobject
coscmd download data/exampleobject /data/

b. 下载文件夹命令

#命令格式
coscmd download -r <cospath> <localpath>
#操作示例
coscmd download -r data/examplefolder/ /data/examplefolder
coscmd download -r data/examplefolder/ /data/
#覆盖下载当前bucket根目录下所有的文件
coscmd download -rf / /data/examplefolder
#同步下载当前 bucket 根目录下所有的文件,跳过 md5校验相同的文件
coscmd download -rs / /data/examplefolder
#同步下载当前 bucket 根目录下所有的文件,同时删除云上删除但本地未删除的文件
coscmd download -rs --delete / /data/examplefolder
#忽略 .txt 和 .doc 的后缀文件
coscmd download -rs / /data/examplefolder --ignore *.txt,*.doc

6、删除文件或者文件夹

a. 删除文件

#命令格式
coscmd delete <cospath>
#操作示例
coscmd delete data/exampleobject

b. 删除文件夹

#命令格式
coscmd delete -r <cospath>
#操作示例
coscmd delete -r /data/examplefolder/
coscmd delete -r /

7. 复制文件或者文件夹

a. 复制文件

#命令格式
coscmd copy <sourcepath> <cospath>
#操作示例
#复制 examplebucket2-1250000000 存储桶下的 data/exampleobject 对象到 examplebucket1-1250000000 存储桶的 data/examplefolder/exampleobject
coscmd -b examplebucket1-1250000000 -r ap-guangzhou copy examplebucket2-1250000000.ap-beijing.myqcloud.com/data/exampleobject data/examplefolder/exampleobject
#修改存储类型,将文件类型改为低频
coscmd -b examplebucket1-1250000000 -r ap-guangzhou copy examplebucket2-1250000000.ap-beijing.myqcloud.com/data/exampleobject data/examplefolder/exampleobject -H "{'x-cos-storage-class':'STANDARD_IA'}"
#修改存储类型,将文件类型改为归档
coscmd -b examplebucket1-1250000000 -r ap-guangzhou copy examplebucket2-1250000000.ap-beijing.myqcloud.com/data/exampleobject data/examplefolder/exampleobject -H "{'x-cos-storage-class':'Archive'}"

b. 复制文件夹

#命令格式
coscmd copy -r <sourcepath> <cospath>
#操作示例
#复制 examplebucket2-1250000000 存储桶下的 examplefolder 目录到 examplebucket1-1250000000 存储桶的 examplefolder 目录
coscmd -b examplebucket1-1250000000 -r ap-guangzhou copy -r examplebucket2-1250000000.cos.ap-guangzhou.myqcloud.com/examplefolder/ examplefolder
coscmd -b examplebucket1-1250000000 -r ap-guangzhou copy -r examplebucket2-1250000000.cos.ap-guangzhou.myqcloud.com/examplefolder/ examplefolder/

总之,如果我们需要有较大文件处理的时候,使用COSCMD工具操作效率会大大提高。如果我们少文件的话,就用COSBROWSER工具。

本文出处:老蒋部落 » 腾讯云对象存储COSCMD工具命令式批量管理存储桶文件 | 欢迎分享( 公众号:QQ69377078 )