对于腾讯云对象存储文件管理方式,我们大部分网友会通过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 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工具命令式批量管理存储桶文件 | 欢迎分享( 公众号:老蒋朋友圈 )