coscmd文档v1.8.2.15

功能说明

使用 COSCMD 工具,用户可通过简单的命令行指令实现对对象(Object)的批量上传、下载、删除等操作。

使用限制

适用于 COS V4、V5 版本;针对 V3 迁移过来的用户也可以使用,但要用 V3 用户的 appid 才可以。

使用环境

系统环境

Windows 或 Linux 系统

软件依赖

Python 2.7
并装有最新版本的 pip

安装及配置

环境安装与配置详细操作请参考 Python 安装与配置

下载与安装

  • 手动安装
    下载链接:GitHub 链接
    在该项目根目录下使用如下命令安装:
python setup.py install
  • pip 安装
    执行pip命令进行安装:
pip install coscmd

安装成功之后,用户可以通过-v或者--version命令查看当前的版本信息。

  • pip 更新
    执行pip命令进行更新:
pip install coscmd -U

注意:
不论是在 Linux 还是 Windows 环境下,都可以通过以上的方法安装或更新。

使用方法

查看 help

用户可通过-h--help命令来查看工具的 help 信息。

coscmd -h  //查看当面版本信息

help 信息如下所示:

usage: coscmd [-h] [-d] [-b BUCKET] [-v]
              {config,upload,download,delete,list,info,mget,restore,signurl,createbucket,deletebucket,putobjectacl,getobjectacl,putbucketacl,getbucketacl}
              ...

an easy-to-use but powerful command-line tool. try 'coscmd -h' to get more
informations. try 'coscmd sub-command -h' to learn all command usage, likes
'coscmd upload -h'

positional arguments:
  {config,upload,download,delete,list,info,mget,restore,signurl,createbucket,deletebucket,putobjectacl,getobjectacl,putbucketacl,getbucketacl}
    config              config your information at first.
    upload              upload file or directory to COS.
    download            download file from COS to local.
    delete              delete file or files on COS
    list                list files on COS
    info                get the information of file on COS
    mget                download big file from COS to local(Recommand)
    restore             restore
    signurl             get download url
    createbucket        create bucket
    deletebucket        delete bucket
    putobjectacl        set object acl
    getobjectacl        get object acl
    putbucketacl        set bucket acl
    getbucketacl        get bucket acl

optional arguments:
  -h, --help            show this help message and exit
  -d, --debug           debug mode
  -b BUCKET, --bucket BUCKET
                        set bucket
  -v, --version         show program's version number and exit

除此之外,用户还可以在每个命令后(不加参数)输入-h查看该命令的具体用法,例如:

coscmd upload -h  //查看 upload 命令使用方法

配置参数

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

coscmd config -a <secret_id> -s <secret_key> -b <bucket> -r <region> [-m <max_thread>] [-p <parts_size>]      

上述示例中使用"<>"的字段为必选参数,使用"[]"的字段为可选参数。其中:

名称 描述 有效值
secret_id 必选参数,APPID 对应的密钥 ID,可从控制台获取,参考 基本概念 字符串
secret_key 必选参数,APPID 对应的密钥 Key,可从控制台获取,参考 基本概念 字符串
bucket 必选参数,指定的存储桶名称,bucket的命名规则为{name}-{appid} ,参考 创建存储桶 字符串
region 必选参数,存储桶所在地域。参考 可用地域 字符串
max_thread 可选参数,多线程上传时的最大线程数(默认为 5),有效值:1~10 数字
parts_size 可选参数,分块上传的单块大小(单位为 MB,默认为 1MB),有效值:1~10 数字

注意:

  1. 可以直接编辑~/.cos.conf文件 (在 Windows 环境下,该文件是位于我的文档下的一个隐藏文件)。
    配置完成之后的.cos.conf文件内容示例如下所示:
  2. 可以在配置文件中增加schame项来选择http/https
 [common]
secret_id = AChT4ThiXAbpBDEFGhT4ThiXAbpHIJK
secret_key = WE54wreefvds3462refgwewerewr
bucket = ABC-1234567890
region = cn-south
max_thread = 5
part_size = 1
schame = https

指定 Bucket 的命令

  • 通过-b <bucket> 指定 Bucket可以指定特定 Bucket。
  • Bucket 的命名规则为{name}-{appid} ,此处填写的存储桶名称必须为此格式。
coscmd -b <bucket> method ...  //命令格式
coscmd -b AAA-12345567 upload a.txt b.txt  //操作示例-上传文件
coscmd -b AAA-12344567 createbucket  //操作示例-创建bucket

创建 Bucket

  • 建议配合-b <bucket> 指定 Bucket使用。
coscmd -b <bucket> createbucket //命令格式
coscmd createbucket  //操作示例
coscmd -b AAA-12344567 createbucket  //操作示例

删除 Bucket

  • 建议配合-b <bucket> 指定 Bucket使用。
coscmd -b <bucket> deletebucket //命令格式
coscmd createbucket  //操作示例
coscmd -b AAA-12344567 deletebucket  //操作示例

上传文件或文件夹

  • 上传文件命令如下:
coscmd upload <localpath> <cospath>  //命令格式
coscmd upload /home/aaa/123.txt bbb/123.txt  //操作示例
coscmd upload /home/aaa/123.txt bbb/  //操作示例
  • 上传文件夹命令如下:
coscmd upload -r <localpath> <cospath>  //命令格式
coscmd upload -r /home/aaa/ bbb/aaa  //操作示例
coscmd upload -r /home/aaa/ bbb/  //操作示例
coscmd upload -r /home/aaa/ /  //上传到bucket根目录

请将 "<>" 中的参数替换为您需要上传的本地文件路径(localpath),以及 COS 上存储的路径(cospath)。

注意:

  • 上传文件时需要将cos上的路径包括文件(夹)的名字补全(参考例子)。
  • COSCMD 支持大文件断点上传功能。当分片上传大文件失败时,重新上传该文件只会上传失败的分块,而不会从头开始(请保证重新上传的文件的目录以及内容和上传的目录保持一致)。
  • COSCMD 分块上传时会对每一块进行 MD5 校验。

下载文件或文件夹

  • 下载文件命令如下:
coscmd download <cospath> <localpath>  //命令格式
coscmd download bbb/123.txt /home/aaa/111.txt  //操作示例
coscmd download bbb/123.txt /home/aaa/  //操作示例
  • 下载文件夹命令如下:
coscmd download-r <cospath> <localpath> //命令格式
coscmd download -r /home/aaa/ bbb/aaa  //操作示例
coscmd download -r /home/aaa/ bbb/  //操作示例
coscmd download -r / bbb/aaa  //下载当前bucket根目录下所有的文件

请将 "<>" 中的参数替换为您需要下载的 COS 上文件的路径(cospath),以及本地存储路径(localpath)。

注意:

  • 若本地存在同名文件,则会下载失败。使用 -f 参数覆盖本地文件。
  • 将以上命令中的 download 替换为 mget, 则可以使用分块下载,在带宽足够的条件下速度会提升 2 ~ 3 倍。

删除文件或文件夹

  • 删除文件命令如下:
coscmd delete <cospath>  //命令格式
coscmd delete bbb/123.txt  //操作示例
  • 删除文件夹命令如下:
coscmd delete -r <cospath>  //命令格式
coscmd delete -r bbb/  //操作示例
coscmd delete -r /  //操作示例

请将"<>"中的参数替换为您需要删除的 COS 上文件的路径(cospath)。工具会提示用户是否确认进行删除操作。

注意:

  • 批量删除需要输入确定,使用 -f 参数跳过确认 。

复制文件

  • 复制文件命令如下:
coscmd copy <sourcepath> <cospath>  //命令格式
coscmd copy bucket-appid.cos.ap-guangzhou.myqcloud.com/a.txt aaa/123.txt  //操作示例

请将"<>"中的参数替换为您需要复制的 COS 上文件的路径(sourcepath),和您需要复制到 COS 上文件的路径(cospath)。

注意:
sourcepath 的样式如下:<bucketname>-<appid>.cos.<region>.myqcloud.com/<cospath>

打印文件列表

  • 打印命令如下:
coscmd list <cospath>  //命令格式
coscmd list -a //操作示例
coscmd list bbb/123.txt  -r -n 10 //操作示例

请将"<>"中的参数替换为您需要打印文件列表的 COS 上文件的路径(cospath)。

  • 使用-a打印全部文件。
  • 使用 -r 递归打印,并且会在末尾返回列出文件的数量和大小之和。
  • 使用 -n num 设置打印数量的最大值。

注意:
<cospath>为空默认打印当前 Bucket 根目录。

显示文件信息

  • 命令如下:
coscmd info <cospath>  //命令格式
coscmd info bbb/123.txt //操作示例

请将"<>"中的参数替换为您需要显示的 COS 上文件的路径(cospath)。

获取带签名的下载 URL

  • 命令如下:
coscmd sigurl<cospath>  //命令格式
coscmd signurl bbb/123.txt //操作示例
coscmd signurl bbb/123.txt -t 100//操作示例

请将"<>"中的参数替换为您需要获取下载url的 COS 上文件的路径(cospath)。
使用 -t time 设置打印签名的有效时间(单位为秒)。

设置访问控制(ACL)

  • 命令如下:
    使用如下命令设置 Bucket 的访问控制:
coscmd putbucketacl [--grant-read GRANT_READ]  [--grant-write GRANT_WRITE] [--grant-full-control GRANT_FULL_CONTROL] //命令格式
coscmd putbucketacl --grant-read 12345678,12345678/11111 --grant-write anyone --grant-full-control 12345678/22222 //操作示例

使用如下命令设置 Object 的访问控制:

coscmd putbucketacl [--grant-read GRANT_READ] [--grant-write GRANT_WRITE] [--grant-full-control GRANT_FULL_CONTROL] <cospath> //命令格式
coscmd putbucketacl --grant-read 12345678,12345678/11111 --grant-write anyone --grant-full-control 12345678/22222 aaa/aaa.txt //操作示例

ACL 设置指南

  • --grant-read 代表读的权限。
  • --grant-write 代表写的权限。
  • --grant-full-control 代表读写的权限。
  • GRANT_READ / GRANT_WRITE / GRANT_FILL_CONTORL 代表被赋权的帐号。
  • 若赋权根帐号,使用 rootid 的形式;
  • 若赋权子账户,使用 rootid/subid 的形式;
  • 若需要对所有人赋权,使用 anyone 的形式。
  • 同时赋权的多个帐号用逗号,隔开。
  • 请将参数替换为您所需要删除的 COS 上文件的路径(cospath)。

获取访问控制(ACL)

  • 使用如下命令设置 Bucket 的访问控制:
coscmd getbucketacl //命令格式
coscmd getbucketacl //操作示例
  • 使用如下命令设置 Object 的访问控制:
coscmd putbucketacl <cospath> //命令格式
coscmd getobjectacl aaa/aaa.txt //操作示例

恢复归档文件

  • 命令如下:
coscmd restore <cospath>  //命令格式
coscmd restore a.txt -d 3 -t  Expedited//操作示例
coscmd restore a.txt -d 3 -t  Bulk///操作示例

请将"<>"中的参数替换为您需要打印文件列表的 COS 上文件的路径(cospath)。

  • 使用 -d day 设置临时副本的过期时间;默认值:7。
  • 使用 -t tier 具体复原过程类型,枚举值: Expedited ,Standard ,Bulk;默认值:Standard。

Debug 模式执行命令

在各命令前加上-d或者-debug,在命令执行的过程中,会显示详细的操作信息 。示例如下:

//显示upload的详细操作信息
coscmd -d upload <localpath> <cospath>  //命令格式
coscmd -d upload /home/aaa/123.txt bbb/123.txt  //操作示例
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • 功能说明 使用 COSCMD 工具,用户可通过简单的命令行指令实现对对象(Object)的批量上传、下载、删除等操...
    lewzylu阅读 2,588评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,099评论 18 139
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 7,937评论 1 19
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,016评论 2 34
  • 一开始我来学九型人格的目的是提升自我。其二是因为我对陈浪老师的经验的相信,同时也是因为陈浪老师和我同是5w4,我遇...
    淡然如水Sindy阅读 276评论 1 2