功能說(shuō)明
使用 COSCMD 工具灰署,用戶可通過(guò)簡(jiǎn)單的命令行指令實(shí)現(xiàn)對(duì)對(duì)象(Object)的批量上傳判帮、下載、刪除等操作溉箕。
使用限制
適用于 COS V4晦墙、V5 版本;針對(duì) V3 遷移過(guò)來(lái)的用戶也可以使用肴茄,但要用 V3 用戶的 appid 才可以晌畅。
使用環(huán)境
系統(tǒng)環(huán)境
Windows 或 Linux 系統(tǒng)
(請(qǐng)保證本地字符格式為utf-8,否則操作中文文件會(huì)出現(xiàn)異常)
軟件依賴
Python 2.7
并裝有最新版本的 pip
安裝及配置
環(huán)境安裝與配置詳細(xì)操作請(qǐng)參考 Python 安裝與配置寡痰。
下載與安裝
-
手動(dòng)安裝
下載鏈接:GitHub 鏈接
在該項(xiàng)目根目錄下使用如下命令安裝:
python setup.py install
-
pip 安裝
執(zhí)行pip
命令進(jìn)行安裝:
pip install coscmd
安裝成功之后抗楔,用戶可以通過(guò)-v
或者--version
命令查看當(dāng)前的版本信息。
-
pip 更新
執(zhí)行pip
命令進(jìn)行更新:
pip install coscmd -U
注意:
不論是在 Linux 還是 Windows 環(huán)境下拦坠,都可以通過(guò)以上的方法安裝或更新连躏。
使用方法
查看 help
用戶可通過(guò)-h
或--help
命令來(lái)查看工具的 help 信息。
coscmd -h //查看當(dāng)面版本信息
help 信息如下所示:
usage: cos_cmd.py [-h] [-d] [-b BUCKET] [-r REGION] [-c CONFIG_PATH]
[-l LOG_PATH] [-v]
{config,upload,download,delete,copy,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,copy,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
copy copy file from COS to COS.
list list files on COS
info get the information of file on COS
mget download file from COS to local.
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
-r REGION, --region REGION
set region
-c CONFIG_PATH, --config_path CONFIG_PATH
set config_path
-l LOG_PATH, --log_path LOG_PATH
set log_path
-v, --version show program's version number and exit
除此之外贞滨,用戶還可以在每個(gè)命令后(不加參數(shù))輸入-h
查看該命令的具體用法入热,例如:
coscmd upload -h //查看 upload 命令使用方法
配置參數(shù)
COSCMD 工具在使用前需要進(jìn)行參數(shù)配置。用戶可以通過(guò)如下命令來(lái)配置:
coscmd config -a <secret_id> -s <secret_key> -b <bucket> -r <region> [-m <max_thread>] [-p <parts_size>]
上述示例中使用"<>"的字段為必選參數(shù)晓铆,使用"[]"的字段為可選參數(shù)勺良。其中:
名稱 | 描述 | 有效值 |
---|---|---|
secret_id | 必選參數(shù),APPID 對(duì)應(yīng)的密鑰 ID尤蒿,可從控制臺(tái)獲取郑气,參考 基本概念。 | 字符串 |
secret_key | 必選參數(shù)腰池,APPID 對(duì)應(yīng)的密鑰 Key尾组,可從控制臺(tái)獲取忙芒,參考 基本概念。 | 字符串 |
bucket | 必選參數(shù)讳侨,指定的存儲(chǔ)桶名稱呵萨,bucket的命名規(guī)則為{name}-{appid} ,參考 創(chuàng)建存儲(chǔ)桶跨跨。 | 字符串 |
region | 必選參數(shù)潮峦,存儲(chǔ)桶所在地域。參考 可用地域勇婴。 | 字符串 |
max_thread | 可選參數(shù)忱嘹,多線程上傳時(shí)的最大線程數(shù)(默認(rèn)為 5),有效值:1~10 | 數(shù)字 |
parts_size | 可選參數(shù)耕渴,分塊上傳的單塊大芯性谩(單位為 MB,默認(rèn)為 1MB)橱脸,有效值:1~10 | 數(shù)字 |
注意:
- 可以直接編輯
~/.cos.conf
文件 (在 Windows 環(huán)境下础米,該文件是位于我的文檔
下的一個(gè)隱藏文件)。
配置完成之后的.cos.conf
文件內(nèi)容示例如下所示: - 可以在配置文件中增加
schema
項(xiàng)來(lái)選擇http / https
添诉,默認(rèn)為https
- bucket的命名規(guī)則為
{name}-{appid}
[common]
secret_id = AChT4ThiXAbpBDEFGhT4ThiXAbpHIJK
secret_key = WE54wreefvds3462refgwewerewr
bucket = ABC-1234567890
region = ap-guangzhou
max_thread = 5
part_size = 1
schema = https
指定 Bucket 的命令
- 通過(guò)
-b <bucket> 指定 Bucket
可以指定特定 Bucket屁桑。 - Bucket 的命名規(guī)則為
{name}-{appid}
,此處填寫的存儲(chǔ)桶名稱必須為此格式栏赴。
coscmd -b <bucket> method ... //命令格式
coscmd -b AAA-12345567 upload a.txt b.txt //操作示例-上傳文件
coscmd -b AAA-12344567 createbucket //操作示例-創(chuàng)建bucket
創(chuàng)建 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根目錄
coscmd upload -rs /home/aaa/ /home/aaa //同步上傳艾帐,跳過(guò)md5相同的文件
coscmd upload -rs /home/aaa/ /home/aaa --ignore *.txt,*.doc //忽略.txt和.doc的后綴文件
請(qǐng)將 "<>" 中的參數(shù)替換為您需要上傳的本地文件路徑(localpath)乌叶,以及 COS 上存儲(chǔ)的路徑(cospath)。
注意:
- 上傳文件時(shí)需要將cos上的路徑包括文件(夾)的名字補(bǔ)全(參考例子)柒爸。
- COSCMD 支持大文件斷點(diǎn)上傳功能准浴。當(dāng)分片上傳大文件失敗時(shí),重新上傳該文件只會(huì)上傳失敗的分塊捎稚,而不會(huì)從頭開(kāi)始(請(qǐng)保證重新上傳的文件的目錄以及內(nèi)容和上傳的目錄保持一致)乐横。
- COSCMD 分塊上傳時(shí)會(huì)對(duì)每一塊進(jìn)行 MD5 校驗(yàn)。
- COSMCD 上傳默認(rèn)會(huì)攜帶
x-cos-meta-md5
的頭部今野,值為該文件的md5
值 - 使用-s參數(shù)可以使用同步上傳葡公,跳過(guò)上傳md5一致的文件(cos上的原文件必須是由1.8.3.2之后的COSCMD上傳的,默認(rèn)帶有x-cos-meta-md5的header)
- 使用-H參數(shù)設(shè)置HTTP header時(shí)条霜,請(qǐng)務(wù)必保證格式為json催什,這里是個(gè)例子:
coscmd upload -H '{"Cache-Control":"max-age=31536000","Content-Language":"zh-CN"}' <localpath> <cospath>
- 在上傳文件夾時(shí),使用--ignore參數(shù)可以忽略某一類文件宰睡,支持shell通配規(guī)則蒲凶,支持多條規(guī)則气筋,用逗號(hào)分隔
- 目前只支持上傳最大40T的單文件
下載文件或文件夾
- 下載文件命令如下:
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 -rf / bbb/aaa //覆蓋下載當(dāng)前bucket根目錄下所有的文件
coscmd download -rs / bbb/aaa //同步下載當(dāng)前bucket根目錄下所有的文件,跳過(guò)md5校驗(yàn)相同的文件旋圆。
coscmd download -rs / bbb/aaa --ignore *.txt,*.doc //忽略.txt和.doc的后綴文件
請(qǐng)將 "<>" 中的參數(shù)替換為您需要下載的 COS 上文件的路徑(cospath)宠默,以及本地存儲(chǔ)路徑(localpath)。
注意:
- 若本地存在同名文件灵巧,則會(huì)下載失敗搀矫。使用
-f
參數(shù)覆蓋本地文件。 -
download
接口使用分塊下載刻肄,老版本的mget
接口已經(jīng)廢除瓤球,請(qǐng)使用download
接口。 - 使用
-s
或者--sync
參數(shù)敏弃,可以在下載文件夾時(shí)跳過(guò)本地已存在的相同文
件 (前提是下載文件夾是通過(guò)COSCMD
的upload
接口上傳的冰垄,文件攜帶有x-cos-meta-md5
頭部) - 在下載文件夾時(shí),使用--ignore參數(shù)可以忽略某一類文件权她,支持shell通配規(guī)則,支持多條規(guī)則逝薪,用逗號(hào)分隔
刪除文件或文件夾
- 刪除文件命令如下:
coscmd delete <cospath> //命令格式
coscmd delete bbb/123.txt //操作示例
- 刪除文件夾命令如下:
coscmd delete -r <cospath> //命令格式
coscmd delete -r bbb/ //操作示例
coscmd delete -r / //操作示例
請(qǐng)將"<>"中的參數(shù)替換為您需要?jiǎng)h除的 COS 上文件的路徑(cospath)隅要。工具會(huì)提示用戶是否確認(rèn)進(jìn)行刪除操作。
注意:
- 批量刪除需要輸入確定董济,使用
-f
參數(shù)跳過(guò)確認(rèn) 步清。
復(fù)制文件或文件夾
- 復(fù)制文件命令如下:
coscmd copy <sourcepath> <cospath> //命令格式
coscmd copy bucket-appid.cos.ap-guangzhou.myqcloud.com/a.txt aaa/123.txt //操作示例
- 復(fù)制文件夾命令如下:
coscmd copy -r <sourcepath> <cospath> //命令格式
coscmd copy -r bucket-appid.cos.ap-guangzhou.myqcloud.com/coscmd/ aaa //操作示例
coscmd copy -r bucket-appid.cos.ap-guangzhou.myqcloud.com/coscmd/ aaa/ //操作示例
請(qǐng)將"<>"中的參數(shù)替換為您需要復(fù)制的 COS 上文件的路徑(sourcepath),和您需要復(fù)制到 COS 上文件的路徑(cospath)虏肾。
注意:
sourcepath 的樣式如下:<bucketname>-<appid>.cos.<region>.myqcloud.com/<cospath>
打印文件列表
- 打印命令如下:
coscmd list <cospath> //命令格式
coscmd list -a //操作示例
coscmd list bbb/123.txt -r -n 10 //操作示例
請(qǐng)將"<>"中的參數(shù)替換為您需要打印文件列表的 COS 上文件的路徑(cospath)廓啊。
- 使用
-a
打印全部文件。 - 使用
-r
遞歸打印封豪,并且會(huì)在末尾返回列出文件的數(shù)量和大小之和谴轮。 - 使用
-n num
設(shè)置打印數(shù)量的最大值。
注意:
<cospath>
為空默認(rèn)打印當(dāng)前 Bucket 根目錄吹埠。
顯示文件信息
- 命令如下:
coscmd info <cospath> //命令格式
coscmd info bbb/123.txt //操作示例
請(qǐng)將"<>"中的參數(shù)替換為您需要顯示的 COS 上文件的路徑(cospath)第步。
獲取帶簽名的下載 URL
- 命令如下:
coscmd sigurl<cospath> //命令格式
coscmd signurl bbb/123.txt //操作示例
coscmd signurl bbb/123.txt -t 100//操作示例
請(qǐng)將"<>"中的參數(shù)替換為您需要獲取下載url的 COS 上文件的路徑(cospath)。
使用 -t time
設(shè)置打印簽名的有效時(shí)間(單位為秒)缘琅。
設(shè)置訪問(wèn)控制(ACL)
- 命令如下:
使用如下命令設(shè)置 Bucket 的訪問(wèn)控制:
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 //操作示例
使用如下命令設(shè)置 Object 的訪問(wèn)控制:
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 設(shè)置指南
- --grant-read 代表讀的權(quán)限粘都。
- --grant-write 代表寫的權(quán)限。
- --grant-full-control 代表讀寫的權(quán)限刷袍。
- GRANT_READ / GRANT_WRITE / GRANT_FILL_CONTORL 代表被賦權(quán)的帳號(hào)翩隧。
- 若賦權(quán)根帳號(hào),使用 rootid 的形式呻纹;
- 若賦權(quán)子賬戶堆生,使用 rootid/subid 的形式专缠;
- 若需要對(duì)所有人賦權(quán),使用 anyone 的形式顽频。
- 同時(shí)賦權(quán)的多個(gè)帳號(hào)用逗號(hào)
,
隔開(kāi)藤肢。 - 請(qǐng)將參數(shù)替換為您所需要?jiǎng)h除的 COS 上文件的路徑(cospath)。
獲取訪問(wèn)控制(ACL)
- 使用如下命令設(shè)置 Bucket 的訪問(wèn)控制:
coscmd getbucketacl //命令格式
coscmd getbucketacl //操作示例
- 使用如下命令設(shè)置 Object 的訪問(wèn)控制:
coscmd putbucketacl <cospath> //命令格式
coscmd getobjectacl aaa/aaa.txt //操作示例
恢復(fù)歸檔文件
- 命令如下:
coscmd restore <cospath> //命令格式
coscmd restore a.txt -d 3 -t Expedited//操作示例
coscmd restore a.txt -d 3 -t Bulk///操作示例
請(qǐng)將"<>"中的參數(shù)替換為您需要打印文件列表的 COS 上文件的路徑(cospath)糯景。
- 使用
-d day
設(shè)置臨時(shí)副本的過(guò)期時(shí)間嘁圈;默認(rèn)值:7。 - 使用
-t tier
具體復(fù)原過(guò)程類型蟀淮,枚舉值: Expedited 最住,Standard ,Bulk怠惶;默認(rèn)值:Standard涨缚。
Debug 模式執(zhí)行命令
在各命令前加上-d
或者-debug
,在命令執(zhí)行的過(guò)程中策治,會(huì)顯示詳細(xì)的操作信息 脓魏。示例如下:
//顯示upload的詳細(xì)操作信息
coscmd -d upload <localpath> <cospath> //命令格式
coscmd -d upload /home/aaa/123.txt bbb/123.txt //操作示例