S3CLI 是一款通過命令行操作對 S3 進行數(shù)據(jù)管理的工具,支持豐富的存儲空間(bucket)以及對象(object)操作,支持Windows、Linux、Mac平臺。
通過本工具,您可以進行以下操作: 存儲空間(bucket):創(chuàng)建、刪除、查看存儲量、查看存儲空間列表等。 對象(object):上傳、下載、刪除、移動、拉列表、計算 etag 等。
另外,本工具提供豐富的批量操作:上傳,下載,刪除,拷貝(不同存儲空間之間),移動(同一存儲空間內(nèi)),數(shù)據(jù)取回等。
軟件版本:1.7.2
運行環(huán)境:Windows(x86 32/64位);Linux(x86 32/64位,arm 32/64位);Mac(64位)
下載地址:
1、Windows:us3cli-windows.exe
2、Linux
x86架構(gòu):us3cli-linux32;us3cli-linux64
arm架構(gòu):us3cli-arm32;us3cli-arm64
3、Mac:us3cli-mac
Linux環(huán)境(Linux 64位版本)準備:
1、下載工具至本地。
2、添加可執(zhí)行權(quán)限。
chmod +x us3cli-linux64CopyErrorSuccess3、開始創(chuàng)建配置。
./us3cli-linux64 configCopyErrorSuccess1、下載工具至本地。
2、以管理員身份打開cmd面板,切換到us3cli-windows.exe文件所在路徑。
3、執(zhí)行config命令創(chuàng)建配置。
us3cli-windows.exe configCopyErrorSuccess注意事項:
1、請使用管理員身份打開cmd命令行。
2、下載后請不要直接點擊執(zhí)行us3cli-windows.exe文件,該工具需要使用命令行工具打開執(zhí)行。
3、如果點擊下載無反應,請右鍵單擊復制鏈接地址,輸入到瀏覽器地址輸入框打開。
1.下載工具至本地。
2.添加可執(zhí)行權(quán)限。
chmod +x us3cli-macCopyErrorSuccess3.開始創(chuàng)建配置。
./us3cli-mac config
快速上手:
1、常用配置
命令格式:
us3cli config [--ls][--su <配置名>][--rm <配置名>][--cat <配置名>][--encrypt][--ssl][--proxy [代理地址]] [--accesskey <API/Token公鑰>][--secretkey <API/Token私鑰>][--endpoint <訪問域名>] [--language <ZH/EN]CopyErrorSuccess常用配置創(chuàng)建方式分為兩種:交互式配置和一鍵配置,命令格式相同,使用方式不同
1.1、配置項創(chuàng)建
交互式配置:
使用示例:
#./us3cli config請輸入語言(Please enter the language): ZH/EN, 默認為ZH(default is ZH) :ZH請輸入當前配置項名稱: config1開始創(chuàng)建新配置項:[ config1 ]是否啟用配置加密(y or n) ? n請輸入API/Token公鑰[當前:]: xxxxxxxxxxxxxxxxxxxxxx請輸入API/Token私鑰[當前:]: xxxxxxxxxxxxxxxxxxxxxx地區(qū)列表:No. RegionName Region 0 北京 cn-bj 1 上海二 cn-sh2 2 廣州 cn-gd 3 香港 hk 4 洛杉磯 us-ca 5 新加坡 sg 6 雅加達 idn-jakarta 7 臺北 tw-tp 8 拉各斯 afr-nigeria 9 圣保羅 bra-saopaulo10 迪拜 uae-dubai 11 法蘭克福 ge-fra 12 胡志明市 vn-sng 13 華盛頓 us-ws 14 孟買 ind-mumbai 15 首爾 kr-seoul16 東京 jpn-tky17 曼谷 th-bkk18 華北二 cn-wlcb19 英國 uk-london 請輸入region編號: 0內(nèi)外網(wǎng)列表:No. Network0 外網(wǎng) 1 內(nèi)網(wǎng) 請選擇或輸入內(nèi)外網(wǎng)編號:0您選擇的endpoint是:[cn-bj.ufileos.com],[當前:],請輸入回車確認或自定義endponit:當前最終配置:ConfigName: config1AccessKey: xxxxxxxxxxxxxxxxxxxxxxSecretKey: xxxxxxxxxxxxxxxxxxxxxxEndpoint: cn-bj.ufileos.com請檢查后輸入回車確認:是否啟用HTTPS (y or n) ? n是否啟用代理(y or n):n配置文件 [ config1 ] 已修改是否使用該配置作為默認配置(當前默認配置為:< config >)(y or n)?CopyErrorSuccess
一鍵配置:
使用示例:
./us3cli config config1 --accesskey TOKEN_13be86********* --secretkey BAtrQO8LYdgve1HS_benbK-MXNTl3********** --endpoint cn-bj.ufileos.com --language ZHCopyErrorSuccess
1.2、配置項管理
#切換默認配置./us3cli config --su config1#刪除指定配置(只支持指定配置項名稱刪除,不支持指定路徑)./us3cli config --rm config1#配置項內(nèi)容查看,包含accesskey、secretkey、endpoint./us3cli config --cat config1#查看當前所有配置項列表,默認配置會標明 "(default)",Authority表示當前配置是Token密鑰類型還是API密鑰類型(只判斷類型,不進行權(quán)限驗證)./us3cli config --lsCopyErrorSuccess
2、臨時配置
臨時配置可以通過配置名、配置文件路徑、配置項內(nèi)容使用,具體示例如下:
#1.通過配置名指定臨時配置./us3cli ls us3://bucket1 --config config2#2.通過配置文件路徑指定臨時配置./us3cli ls us3://bucket1 --config ~/go/src/userconfig.yaml#3.通過配置項內(nèi)容直接指定臨時配置./us3cli ls us3://bucket1 --accesskey "xxxxxx" --secretkey "xxxxxx" --endpoint "xxxxxx"CopyErrorSuccess注:當前版本支持自定義配置文件,但只支持與工具自動生成配置文件內(nèi)容相同的配置文件
自定義配置文件內(nèi)容如下,具體填寫說明見常用命令頁config命令介紹
accesskey: "user accesskey"secretkey: "user secretkey"endpoint: "ufile.cn-north-02.ucloud.cn"encrypt: "false"enablessl: "false"proxy: "http://ip:port or https://ip:port"language: "ZH"CopyErrorSuccess
3、創(chuàng)建存儲空間
3.1、交互式創(chuàng)建
命令格式:us3cli mb us3://<bucketname> 使用示例:# ./us3cli mb us3://bucketTest請輸入要創(chuàng)建bucket的權(quán)限類型acl(private/public,默認為private):private 地區(qū)列表:No. RegionName Region 0 北京 cn-bj 1 上海二 cn-sh2 2 廣州 cn-gd 3 香港 hk 4 洛杉磯 us-ca 5 新加坡 sg 6 雅加達 idn-jakarta 7 臺北 tw-tp 8 拉各斯 afr-nigeria 9 圣保羅 bra-saopaulo10 迪拜 uae-dubai 11 法蘭克福 ge-fra 12 胡志明市 vn-sng 13 華盛頓 us-ws 14 孟買 ind-mumbai 15 首爾 kr-seoul16 東京 jpn-tky17 曼谷 th-bkk18 華北二 cn-wlcb19 英國 uk-london 請輸入要創(chuàng)建bucket地區(qū)編號或地區(qū)代碼(默認為北京:cn-bj):0Region: cn-bj當前賬號下項目信息如下:No. ProjectName ProjectId 1 Default org-orcwsj請輸入要創(chuàng)建bucket的項目編號:1Number: 1ProjectID: org-orcwsj2020-11-24 17:52:56.973 INFO Make bucket [ bucketTest ] successCopyErrorSuccess
3.2、一鍵創(chuàng)建
#命令格式:us3cli mb us3://<bucketname> --projectid <projectid> --region <region> --acl <acl> #使用示例:./us3cli mb us3://buckettest --projectid org-test --region cn-bj --acl publicCopyErrorSuccess
4、上傳文件或文件夾
4.1、上傳單個文件
#命令格式:#普通文件us3cli cp <local filename> us3://<bucketname>/<us3key> #流式文件us3cli rcat us3://<bucketname>/<us3key> #使用示例:#普通上傳文件,不指定任何參數(shù)./us3cli cp ./test.txt us3://buckettest/test.txt#指定存儲類型為IA上傳 (不區(qū)分大小寫)./us3cli cp ./test.txt us3://buckettest/test.txt --storageclass IA#指定并發(fā)數(shù),設(shè)置并發(fā)數(shù)為10(文件大于64MB時才會有效果,因為64MB以上大文件才會使用分片上傳)./us3cli cp ./test.txt us3://buckettest/test.txt --parallel 10#將本地文件test.txt cat到標準輸入,再上傳至us3存儲空間內(nèi)cat test.txt | ./us3cli rcat us3://buckettest/test.txt#流式上傳并指定失敗重試次數(shù)為10,設(shè)置并發(fā)數(shù)為10cat test.txt | ./us3cli rcat us3://buckettest/test.txt --retrycount 10 --parallel 10CopyErrorSuccess
4.2、上傳文件夾
#命令格式:us3cli cp -r <localdir> us3://<bucketname>/<us3key> #使用示例:#普通上傳文件夾./us3cli cp -r ./testdir us3://buckettest/us3dir#上傳后綴名為“.txt"的文件./us3cli cp -r ./testdir us3://buckettest/us3dir --include "*txt"#上傳文件名不包含test的文件./us3cli cp -r ./testdir us3://buckettest/us3dir --exclude "*test*"#上傳文件夾并進行完整性校驗./us3cli cp -r ./testdir us3://buckettest/us3dir --checkCopyErrorSuccess
4.3、增量上傳文件夾
增量上傳文件夾:對比本地文件夾和us3對應的文件夾,忽略已上傳的文件,將未上傳過的文件上傳到us3文件夾內(nèi)
#命令格式:us3cli sync <localdir> us3://<bucketname>/<us3key> #使用示例:#遍歷本地文件夾,以本地緩存為標準進行同步,如果文件修改時間晚于本地緩存保存的時間,或者未保存過,則上傳文件,否則跳過./us3cli sync ./testdir us3://buckettest/us3dir#遍歷本地文件夾,以本地緩存為標準進行同步,如果文件etag和本地緩存保存的etag不同,則上傳文件,否則跳過./us3cli sync ./testdir us3://buckettest/us3dir --ruler etag#遍歷本地文件夾,對比本地和us3所有文件,如果文件修改時間晚于us3文件的修改時間,則上傳文件,否則跳過#如果存在文件在us3的目錄下存在,但在本地不存在,則刪除us3中的該文件(該刪除操作會默認詢問,目前不提供強制刪除功能)./us3cli sync ./testdir us3://buckettest/us3dir --mode local#遍歷本地文件夾,對比本地和us3所有文件,如果文件etag和us3同一文件的etag不同,則上傳文件,否則跳過./us3cli sync ./testdir us3://buckettest/us3dir --mode local --ruler etag#增量上傳并指定存儲類型為低頻類型./us3cli sync ./testdir us3://buckettest/us3dir --storageclass ”IA“#增量上傳并指定mimetype./us3cli sync ./testdir us3://buckettest/us3dir --mimetype "mimetype1"CopyErrorSuccess
5、下載文件或文件夾
5.1、下載單個文件
#命令格式:#普通下載us3cli cp us3://<bucketname>/<us3key> <local filename> #流式下載us3cli cat us3://<bucketname>/<us3key> #使用示例:#普通下載單個文件./us3cli cp us3://buckettest/test.txt ./test.txt#下載文件,每個分片大小指定為8M(不區(qū)分大小寫,并且默認大小為4M,最小值為4M)./us3cli cp us3://buckettest/test.txt ./test.txt --partsize 4M#流式文件下載(文件會寫入到標準輸入)./us3cli cat us3://buckettest/test.txt#流式下載并指定并發(fā)數(shù),重試次數(shù)為10./us3cli cat us3://buckettest/test.txt --parallel 10 --retrycount 10CopyErrorSuccess
5.2、下載文件夾
#命令格式:us3cli cp -r us3://<bucketname>/<us3key> <localdir> #使用示例:#普通下載文件夾./us3cli cp -r us3://buckettest/us3dir ./testdir#下載文件夾并指定并發(fā)數(shù)為20./us3cli cp -r us3://buckettest/us3dir ./testdir --parallel 20#下載文件夾并限速為100MB/s./us3cli cp -r us3://buckettest/us3dir ./testdir --speedlimit 100MBCopyErrorSuccess
6、拷貝文件或文件夾
#命令格式us3cli cp us3://<bucketname>/<us3key> #使用示例#將文件從bucket1拷貝至bucket2中(兩個bucket必須在同一地域中,如需要不同地域的數(shù)據(jù)復制,則需要使用跨區(qū)域復制功能)./us3cli cp us3://bucket1/test.txt us3://bucket2/test.txt#將文件夾從bucket1拷貝到bucket2中./us3cli cp -r us3://bucket1/test us3://bucket2/test#將bucket1中test文件夾中以".txt"結(jié)尾的文件拷貝到bucket2的test文件夾中./us3cli cp -r us3://bucket1/test us3://bucket2/test --include "*.txt"CopyErrorSuccess
7、刪除文件或文件夾
7.1、刪除單個文件
#命令格式:us3cli rm us3://<bucketname>/<us3key> #使用示例:#刪除文件./us3cli rm us3://buckettest/test.txt#強制刪除./us3cli rm -f us3://buckettest/test.txtCopyErrorSuccess
7.2、刪除文件夾
#命令格式:us3cli rm -r us3://<bucketname>/<us3key> #使用示例:#刪除文件夾./us3cli rm -r us3://buckettest/test#強制刪除整個test文件夾./us3cli rm -r -f us3://buckettest/test#刪除test文件夾下不含有test的文件./us3cli rm -r -f us3://buckettest/test --exclude "*test*"#設(shè)置并發(fā)數(shù)為10,強制清空當前buckettest存儲空間./us3cli rm -r -f us3://buckettest --parallel 10 #刪除文件夾,限制請求數(shù)量為每秒10個./us3cli rm -r -f us3://buckettest/test --qps 10CopyErrorSuccess
8、查詢文件基本信息
#命令格式us3cli stat us3://<bucketname>/<us3key> #使用示例./us3cli stat us3://buckettest/test.txtCopyErrorSuccess
9、獲取文件列表
#命令格式us3cli ls us3://<bucketname>[/us3key]#使用示例./us3cli ls us3://buckettest#拉取buckettest中的文件,只顯示10個./us3cli ls us3://buckettest --limit 10#拉取buckettest中的文件,并以非目錄形式展示#非目錄形式:目錄下所有的文件都顯示完整路徑,子目錄下的文件也會列出./us3cli ls us3://buckettest --flat#列取buckettest中的文件,并展示是否已取回,以及取回時間#數(shù)據(jù)取回:指歸檔類型的數(shù)據(jù)短暫激活,可以下載./us3cli ls us3://buckettest --restoreCopyErrorSuccess
10、文件基本信息修改
#命令格式us3cli modify us3://<bucketname>/us3key#使用示例#修改文件mimetype為xxx/yyy./us3cli modify us3://buckettest/test.txt --mimetype xxx/yyy#為文件增加metadata key為 "name" value為 "us3cli"./us3cli modify us3://buckettest/test.txt --metadata name=us3cli#清空當前文件的metadata./us3cli modify us3://buckettest/test.txt --metadata "" --replace#修改文件的存儲類型為ARCHIVE(歸檔類型)./us3cli modify us3://buckettest/test.txt --storageclass ARCHIVE常用命令:
操作 | 命令 | 描述 |
---|---|---|
配置管理 | config | 管理上傳所需的公私鑰及endpoint等信息,包括配置項的創(chuàng)建、修改、刪除、更新、切換 |
創(chuàng)建存儲空間 | mb | 創(chuàng)建存儲空間 |
刪除存儲空間 | rb | 刪除存儲空間(存儲空間為空) |
查看存儲空間信息 | stat | 查看bucket的元數(shù)據(jù)信息 |
查看存儲量 | du | 查看bucket的存儲量(標準、低頻、歸檔) |
普通上傳 | cp | 將本地文件或目錄上傳到存儲空間中 |
增量上傳 | sync | 增量上傳目錄到存儲空間中 |
流式上傳 | rcat | 將流式文件上傳到存儲空間中 |
創(chuàng)建目錄 | mkdir | 在us3存儲空間中創(chuàng)建一個空目錄 |
普通下載 | cp | 將存儲空間中的文件或目錄下載到本地 |
流式下載 | cat | 將存儲空間中的數(shù)據(jù)下載并寫入到標準輸入中 |
拷貝 | cp | 將一個存儲空間中的文件拷貝到另一個存儲空間中(同一地域) |
移動 | mv | 將文件或目錄移動到其他目錄下(同一存儲空間內(nèi)) |
刪除 | rm | 刪除存儲空間中的文件或目錄 |
列表 | ls | 列出US3存儲空間列表或US3存儲空間中的文件列表 |
獲取下載URL | sign | 獲取存儲空間中文件的下載鏈接 |
查看元數(shù)據(jù) | stat | 查看存儲空間中文件的元數(shù)據(jù)信息 |
修改元數(shù)據(jù) | modify | 修改存儲空間中文件的存儲類型、MIMETYPE、MetaData |
歸檔數(shù)據(jù)取回 | restore | 將歸檔類型的文件激活為可下載狀態(tài) |
數(shù)據(jù)完整性校驗 | etag | 查看本地文件、標準輸出、US3存儲空間的文件etag |
創(chuàng)建token | create-token | 創(chuàng)建一個用于操作US3的token |
刪除token | delete-token | 刪除一個用于操作US3的token |
更新token | update-token | 更新一個用于操作US3的token |
描述token | describe-token | 列取并描述操作US3的token |
版本更新 | update | 更新工具版本 |
版本特性 | version | 查看工具版本特性 |
config命令用于管理配置文件。
配置文件內(nèi)容說明:
配置項 | 說明 | 填寫說明 |
---|---|---|
AccessKey | 用于鑒權(quán)的bucket公鑰 | API公鑰 、Token公鑰 |
SecretKey | 用于鑒權(quán)的bucket私鑰 | API私鑰 、Token私鑰 |
Endpoint | 外網(wǎng)或內(nèi)網(wǎng)域名 | 地域和域名 |
encrypt | 是否使用配置加密 | false 或 true |
enablessl | 是否使用https | false 或 true |
proxy | 代理地址 | “ip:port” |
language | 工具顯示語言 | ZH 或 EN |
自定義配置文件格式,填寫說明同上:
accesskey: "user accesskey"secretkey: "user secretkey"endpoint: "ufile.cn-north-02.ucloud.cn"encrypt: "false"enablessl: "false"proxy: "http://ip:port or https://ip:port"language: "EN"CopyErrorSuccess1.交互式配置
創(chuàng)建配置項
#./us3cli config請輸入語言(Please enter the language): ZH/EN, 默認為ZH(default is ZH) : ZH請輸入當前配置項名稱: config1開始創(chuàng)建新配置項:[ config1 ]是否啟用配置加密(y or n) ? n請輸入API/Token公鑰[當前:]: xxxxxxxxxxxxxxxxxxxxxx請輸入API/Token私鑰[當前:]: xxxxxxxxxxxxxxxxxxxxxx地區(qū)列表:No. RegionName Region 0 華北一 cn-bj 1 上海二 cn-sh2 2 廣州 cn-gd 3 香港 hk 4 洛杉磯 us-ca 5 新加坡 sg 6 雅加達 idn-jakarta 7 臺北 tw-tp 8 拉各斯 afr-nigeria 9 圣保羅 bra-saopaulo10 迪拜 uae-dubai 11 法蘭克福 ge-fra 12 胡志明市 vn-sng 13 華盛頓 us-ws 14 孟買 ind-mumbai 15 首爾 kr-seoul16 東京 jpn-tky17 曼谷 th-bkk18 華北二 cn-wlcb19 英國 uk-london請輸入region編號: 0內(nèi)外網(wǎng)列表:No. Network0 外網(wǎng) 1 內(nèi)網(wǎng) 請選擇或輸入內(nèi)外網(wǎng)編號:0您選擇的endpoint是:[cn-bj.ufileos.com],[當前:],請輸入回車確認或自定義endponit:當前最終配置:ConfigName: config1AccessKey: xxxxxxxxxxxxxxxxxxxxxxSecretKey: xxxxxxxxxxxxxxxxxxxxxxEndpoint: cn-bj.ufileos.com請檢查后輸入回車確認:是否啟用HTTPS (y or n) ? n是否啟用代理(y or n):n配置文件 [ config1 ] 已修改是否使用該配置作為默認配置(當前默認配置為:< config >)(y or n)?CopyErrorSuccess注意:
1.首次創(chuàng)建的配置文件時會自動將該配置作為默認配置
2.配置加密只加密到公私鑰,并且當前配置文件只在初次創(chuàng)建時可選是否加密
3.填寫代理地址時只需要填寫“ ip:port”,客戶端會根據(jù)填寫的https啟用狀態(tài)補充需要的"https://"或“http://”頭部信息
列出配置項列表
./us3cli config --lsConfigName ModTime FilePath Authority config1 (Default) 2020-09-21 14:18:50 /root/.us3cliconfig/config1 Token config2 2020-09-21 14:18:50 /root/.us3cliconfig/config2 Token us3cli 2020-09-16 10:36:00 /root/.us3cliconfig/us3cli APIKeyCopyErrorSuccess說明:
1.Default標識表示該配置項是當前的默認配置
2.Authority表示權(quán)限分類,只用于快速區(qū)分Token和API密鑰格式,不保證內(nèi)容準確
切換配置項
./us3cli config --su config2CopyErrorSuccess
刪除配置項
./us3cli config --rm config1CopyErrorSuccess注意:以下所有命令的(y or n)選項規(guī)則均不區(qū)分大小寫,輸入yes或y表示確認,其他選項均表示取消
打印配置項
./us3cli config --cat config2ConfigName:config2AccessKey: TOKEN_13be86*********SecretKey: BAtrQO8LYdgve1HS_benbK-MXNTl3**********Endpoint: cn-bj.ufileos.comLanguage: ZHCopyErrorSuccess2.非交互式配置
./us3cli config config3 --accesskey TOKEN_AAGASGAZVZV**** --secretkey USAsflmTAAF****** --endpoint cn-bj.ufileos.com --language ENConfiguration file [ config3 ] has been updatedCopyErrorSuccess3.臨時使用(對其他命令生效)
上傳文件時臨時使用配置項config3
./us3cli cp test.txt us3://bucket1 --config config3CopyErrorSuccess
上傳文件時臨時使用配置文件 /home/ubuntu/myconfig1
./us3cli cp test.txt us3://bucket1 --config /home/ubuntu/myconfig1CopyErrorSuccess
上傳文件時使用自定義配置內(nèi)容
./us3cli cp test.txt us3://bucket1 --accesskey LTAI4G3t3BTza47xxxxxxxxxx --secretkey gznFs9daMtKmUaTq9xpxxxxxxxxxxxxx --endpoint cn-bj.ufileos.comCopyErrorSuccess該命令用于創(chuàng)建存儲空間
本命令提供命令輸入和交互式輸入二選一的操作,命令輸入?yún)?shù),就會自動跳過交互式輸入。
./us3cli mb us3://us3cli-test請輸入要創(chuàng)建bucket的權(quán)限類型acl(private/public,默認為private):public地區(qū)列表:No. RegionName Region 0 華北一 cn-bj 1 上海二 cn-sh2 2 廣州 cn-gd 3 香港 hk 4 洛杉磯 us-ca 5 新加坡 sg 6 雅加達 idn-jakarta 7 臺北 tw-tp 8 拉各斯 afr-nigeria 9 圣保羅 bra-saopaulo10 迪拜 uae-dubai 11 法蘭克福 ge-fra 12 胡志明市 vn-sng 13 華盛頓 us-ws 14 孟買 ind-mumbai 15 首爾 kr-seoul16 東京 jpn-tky17 曼谷 th-bkk18 華北二 cn-wlcb19 英國 uk-london 請輸入要創(chuàng)建bucket地區(qū)編號或地區(qū)代碼(默認為華北一:cn-bj):0Region: cn-bj當前賬號下業(yè)務(wù)組分組信息如下:No. ProjectName ProjectId 1 Default org-orcwsj請輸入要bucket的項目編號:1Number: 1ProjectID: org-orcwsjMake bucket [ us3cli-test ] successCopyErrorSuccess
非交互式創(chuàng)建bucket,輸入acl,region以及projectid信息,acl,region是必填項,projectid可不填
./us3cli mb us3://us3cli-test --acl private --region cn-bj --projectid org-orcwsyCopyErrorSuccess注意:若您的bucket不在默認項目下,bucket操作都需要加上--projectid參數(shù),請創(chuàng)建bucket時自行記錄projectid,或通過 ls 命令查看projectid
本命令用于刪除存儲空間
本命令用于查看存儲空間或文件信息
./us3cli stat us3://bucket1BucketName: bucket1 Region: cn-bj BucketId: ufile-dpgjzcn Type: public CreateTime: 2020-09-15 18:17:24ModifyTime: 2020-09-15 18:17:24CopyErrorSuccess
查看us3://bucket1/test.txt的文件信息
./us3cli stat us3://bucket1/aaa.txtName: aaa.txt X-Ufile-Create-Time: Fri, 18 Sep 2020 10:09:05 GMT X-Ufile-Storage-Class: STANDARD Server: nginx/1.11.1 Date: Mon, 21 Sep 2020 11:17:56 GMT Content-Type: application/octet-stream Accept-Ranges: bytes Etag: "AQAAAEpjpDD8COEdGg3uOeLfsR_ddQgc"Content-Length: 4298 Last-Modified: Fri, 18 Sep 2020 10:09:05 GMT Vary: OriginCopyErrorSuccess該命令用于獲取指定存儲空間(Bucket)各存儲類型的存儲量大小,以及總存儲量
注意:存儲量結(jié)算時間為當前日期前一天0:00
StorageClass Size STANDARD: 1.05 GBIA: 0 GB ARCHIVE: 0 GB Total storage: 1.05 GBCopyErrorSuccess
查看bucket1下的testfolder目錄下各類型存儲量以及文件數(shù)量
#./us3cli du us3://bucket1/testfolder FileCount FileSizeSum 10000 99.77 MB STANDARD 10000 99.77 MB IA 0 0 B ARCHIVE 0 0 B UpdateTime: 2020-12-24 11:40:27 ThuCopyErrorSuccess注意:當使用命令首次查看某個目錄或前綴下的存儲量時,會將數(shù)據(jù)保存在本地,24內(nèi)使用非強制更新查看存儲量時,都不會重新請求,只顯示前24小時內(nèi)拉取到的最新數(shù)據(jù)。有更新需要的可以添加-f/--force選項再次拉取存儲量。
該命令用于上傳、下載、拷貝文件
上傳文件
us3cli cp <本地文件路徑> us3://<桶名字>/<文件Key> [--check][--recursive][--reduce][--parallel <分片上傳并發(fā)數(shù)>][--speedlimit <速度限制>][--storageclass <存儲類型>][--exclude <通配符表達式>][--rexclude <正則表達式>][--include <通配符表達式>][--rinclude <正則表達式>][--metadata <Key>=<value1>[,<key2>=<value2>]...][--mimetype <多媒體文件格式>]CopyErrorSuccess下載文件
us3cli cp us3://<桶名字>/<文件Key> <本地文件路徑> [--recursive][--reduce][--speedlimit <速度限制>][--exclude <通配符表達式>][--rexclude <正則表達式>][--include <通配符表達式>][--rinclude <正則表達式>][--parallel <分片下載并發(fā)數(shù)>][--partsize <下載分片大小>]CopyErrorSuccess拷貝文件
us3cli cp us3://<桶名字>/<文件Key> us3://<桶名字>/<文件Key> [--recursive][--reduce][--exclude <通配符表達式>][--rexclude <正則表達式>][--include <通配符表達式>][--rinclude <正則表達式>][--metadata <Key>=<value1>[,<key2>=<value2>]...]CopyErrorSuccess注意:
1.通配符表達式暫時只支持“*”,"?"兩種字符,并且需要注意的是,四種表達式篩選均以當前目錄下文件路徑為準
如:us3://us3cli/test 目錄下的test2/test3.txt 會以test2/test3.txt作為字符串篩選,而不是以test3.txt作為字符串進行篩選
2.以下所有speedlimit選項均描述為平均速度
3.單個文件上傳時根據(jù)文件大小使用不同的請求,文件大于64MB使用分片上傳,小于64MB時使用普通的put請求,故上傳中的parallel參數(shù)僅限上傳64MB以上大文件使用
4.由于windows環(huán)境下文件名存在不區(qū)分大小寫的情況,要下載的文件已存在時,會在文件名及文件后綴名之間默認添加(1),(2)...等作為文件名后綴,如:
文件test.txt存在,則下載的文件保存為test(1).txt,若此時test(1).txt也存在,也保存為test(2).txt,依次類推CopyErrorSuccess./us3cli cp ~/go/src/test.txt us3://bucket1/testCopyErrorSuccess
上傳單個大文件(大于64MB)并設(shè)置分片并發(fā)數(shù)為10
./us3cli cp ~/go/src/test.mp4 us3://bucket1/test.mp4 --parallel 10# 文件大小小于64MB時該參數(shù)無效CopyErrorSuccess
下載單個文件
./us3cli cp us3://bucket1/test/test.txt ~/go/src/test.txtCopyErrorSuccess
拷貝單個文件
./us3cli cp us3://bucket1/test.txt us3://bucket2/test.txtCopyErrorSuccess
拷貝文件夾
./us3cli cp -r us3://bucket1/test us3://bucket2/testCopyErrorSuccess
下載文件夾
./us3cli cp -r us3://bucket/test ~/go/src/testCopyErrorSuccess
指定存儲類型上傳
上傳單個文件并指定存儲類型為IA(低頻訪問)類型
./us3cli cp ~/go/src/test.txt us3://bucket/path/test.txt --storageclass IACopyErrorSuccess
限速上傳
上傳文件test.txt,并設(shè)置速度為1024Kb/s
./us3cli cp ~/go/src/test.txt us3://bucket/test.txt --speedlimit 1024KbCopyErrorSuccess
批量上傳
上傳所有格式為jpg的文件(通配符)
./us3cli cp -r ~/go/src/test us3://bucket/test --include "*.jpg"CopyErrorSuccess上傳所有a開頭b結(jié)尾的文件(正則表達式)
./us3cli cp -r ~/go/src/test us3://bucket/test --rinclude "a*b"CopyErrorSuccess上傳所有不包括a開頭b結(jié)尾的文件(正則表達式)
./us3cli cp -r ~/go/src/test us3://bucket/test --rexclude "a*b"CopyErrorSuccess上傳所有文件名不包括001的文件(通配符)
./us3cli cp -r ~/go/src/test us3://bucket/test --exclude "*001*"CopyErrorSuccess
上傳單個文件并指定元數(shù)據(jù)信息
./us3cli cp ~/go/src/test us3://bucket/test --metadata key1=value1,key2=value2CopyErrorSuccess
指定mimetype為text/plain上傳
./us3cli cp ~/go/src/test us3://bucket/test --mimetype text/plainCopyErrorSuccess
上傳文件夾并檢查etag是否一致
./us3cli cp -r ~/go/src/test us3://bucket/test --checkCopyErrorSuccess本命令用于目錄的增量上傳
增量模式說明:
1.cache模式使用本地緩存,從本地上傳到bucket成功的文件,都會被記錄為上傳成功文件,如果需要重新上傳,可以選擇刪除當前用戶目錄下的.us3cliconfig/leveldb文件夾,使用命令時會自動創(chuàng)建新的文件夾。
2.local模式下最終以本地文件為標準,保證bucket中的目標文件夾和本地同步,以下場景會進行文件刪除,請慎用:
增量上傳文件夾后,將本地文件刪除,再次使用local模式增量,會將bucket中的文件刪除以保持US3 Bucket和本地同步
./us3cli sync /root/test us3://bucket/pathCopyErrorSuccess
cache模式,以本地緩存中的文件etag信息為標準,同步本地文件
./us3cli sync /root/test us3://bucket/path --ruler etagCopyErrorSuccess
local模式,對比本地文件夾與指定us3目錄中的所有文件的修改時間,通過上傳文件以及刪除us3文件操作,將us3目錄狀態(tài)與本地保持一致(如us3中有相對于本地多余的文件,則會刪除us3中對應多余文件,請慎用)
./us3cli sync /root/test us3://bucket/path --mode localCopyErrorSuccess
local模式,對比本地文件夾與指定us3目錄中的所有文件的etag信息,通過上傳文件以及刪除us3文件操作,將us3目錄狀態(tài)與本地保持一致(如us3中有相對于本地多余的文件,則會刪除us3中對應多余文件,請慎用)
./us3cli sync /root/test us3://bucket/path --mode local --ruler etagCopyErrorSuccess
限速為1024 Kb/s上傳
./us3cli sync /root/test us3://bucket/path --speedlimit 1024KbCopyErrorSuccess
并發(fā)上傳文件夾
./us3cli sync /root/test us3://bucket/path --parallel 5CopyErrorSuccess
指定mimetype上傳
./us3cli sync /root/test us3://bucket/path --mimetype "mimetype"CopyErrorSuccess
指定存儲類型上傳
./us3cli sync /root/test us3://bucket/path --storageclass "ARCHIVE"CopyErrorSuccess
指定元數(shù)據(jù)上傳
./us3cli sync /root/test us3://bucket/path --metadata "key1=value1,key2=value2"CopyErrorSuccess本命令用于流式上傳文件
cat test.txt | ./us3cli rcat us3://bucket1/test.txtCopyErrorSuccess
流式上傳文件test.txt并設(shè)置限速為 2MB/s
cat test.txt | ./us3cli rcat us3://bucket1/test.txt --speedlimit 2MBCopyErrorSuccess
流式上傳文件test.txt并設(shè)置重試次數(shù)為5次
cat test.txt | ./us3cli rcat us3://bucket1/test.txt --retrycount 5CopyErrorSuccess
流式上傳文件test.txt并設(shè)置并發(fā)數(shù)為2
cat test.txt | ./us3cli rcat us3://bucket1/test.txt --parallel 2CopyErrorSuccess本命令用于在US3存儲空間內(nèi)創(chuàng)建目錄
./us3cli mkdir us3://bucket/dirCopyErrorSuccess
創(chuàng)建多級目錄
./us3cli mkdir -p us3://bucket/dir1/dir2CopyErrorSuccess本命令用于流式下載文件
./us3cli cat us3://bucket1/test.txtCopyErrorSuccess
流式下載test.txt到本地
./us3cli cat us3://bucket1/test.txt > test.txtCopyErrorSuccess
流式下載并限速為1MB/s
./us3cli cat us3://bucket1/test.txt --speedlimit 1MB > test.txtCopyErrorSuccess
流式下載并設(shè)置重試次數(shù)為5次
./us3cli cat us3://bucket1/test.txt --retrycount 5 > test.txtCopyErrorSuccess
下載并設(shè)置分片大小為2M
./us3cli cat us3://bucket1/test.txt --partsize 2M > test.txtCopyErrorSuccess本命令用于移動文件
注意:本命令只能用于相同bucket之內(nèi),同時-f選項只支持文件
./us3cli mv us3://bucket/test.txt us3://bucket/test/test.txtCopyErrorSuccess
強制移動文件
./us3cli mv us3://bucket/test.txt us3://bucket/test/test.txt -fCopyErrorSuccess
移動文件夾 注意:目標文件夾存在時,文件夾會被移動到目標文件夾子目錄中
./us3cli mv us3://bucket/test us3://bucket/test2CopyErrorSuccess本命令用于刪除目錄或者對象
./us3cli rm us3://bucket/test.txtCopyErrorSuccess
強制刪除文件
./us3cli rm -f us3://bucket/test.txtCopyErrorSuccess
強制刪除文件夾
./us3cli rm -r -f us3://bucket/testCopyErrorSuccess
批量刪除test文件夾中后綴名為.jpg的文件
./us3cli rm -r us3://bucket/test --include "*.jpg"CopyErrorSuccess
限制刪除操作最多每秒10個請求,最大可以上調(diào)到1000qps,取值范圍在1~1000
./us3cli rm -r us3://bucket/test --include "*.jpg" --qps 10CopyErrorSuccess
批量刪除文件并設(shè)置并發(fā)數(shù)為30
./us3cli rm -r us3://bucket/test --parallel 30CopyErrorSuccess
清空bucket
./us3cli rm -r -f us3://bucket --parallel 10CopyErrorSuccess
刪除sync產(chǎn)生的緩存
./us3cli rm -f --cache syncCopyErrorSuccess該命令用于列出存儲空間(Bucket)、對象(Object)或ProjectID
注意:
ls列取文件列表默認情況修改為只顯示文件key,文件大小,存儲類型,創(chuàng)建時間,可以自行通過參數(shù)添加restore、etag、mimetype等信息
./us3cli lsBucketName Region Acl CreateTime bucket1 cn-bj public 2020-03-27 17:20:56bucket2 cn-bj private 2020-03-27 17:20:43us3cli cn-bj public 2020-09-15 16:17:24CopyErrorSuccess
列出bucket下所有對象
./us3cli ls us3://bucketKey FileSize StorageClass Etag CreateTime us3://bucket/cf1 DIR IA AQAAANo5o-5ea0sNMlW_75VgGJCv2AcJ 2020-07-16 18:51:04 us3://bucket/aa.txt 4KB STANDARD AQAAAGNlfLt9cIbFawzU5caZm7aDZkho 2020-07-22 11:04:34 us3://bucket/aa.txt 4KB ARCHIVE AQAAAGNlfLt9cIbFawzU5caZm7aDZkho 2020-07-22 11:04:34CopyErrorSuccess
列出當前賬號下所有project
./us3cli ls --project當前賬號下項目信息如下:No. ProjectName ProjectId 1 Default org-ddhm4o2 Test org-nhrc4y3 Test2 org-wr5pejCopyErrorSuccess
列出bucket下對象并限制顯示文件數(shù)量為2
./us3cli ls us3://bucket --limit 2CopyErrorSuccess
列出bucket下對象并顯示數(shù)據(jù)解凍狀態(tài)信息
./us3cli ls us3://bucket --restoreCopyErrorSuccess
遞歸當前目錄列出非目錄形式的文件列表(展開所有目錄)
./us3cli ls us3://bucket --flatCopyErrorSuccess本命令用于文件下載url獲取
./us3cli sign us3://bucket/test.txtCopyErrorSuccess
獲取限時100s 的url簽名
./us3cli sign us3://bucket/test.txt --expires 100CopyErrorSuccess該命令用于修改us3中的文件信息
修改test.txt的存儲類型為STANDARD標準型
./us3cli modify us3://bucket/test.txt --storageclass STANDARDCopyErrorSuccess
mimetype改變
修改test.txt文件的mimetype信息
./us3cli modify us3://bucket/test.txt --mimetype image/x-iconCopyErrorSuccess
metadata改變
1.修改test.txt文件的元數(shù)據(jù)信息,以key=value形式作為參數(shù),可修改多個元數(shù)據(jù)信息,中間以英文逗號","分隔
./us3cli modify us3://bucket/test.txt --metadata "key1=value1,key2=value2"CopyErrorSuccess2.清除原有元數(shù)據(jù),添加新的內(nèi)容
./us3cli modify us3://bucket/test.txt --metadata "key1=value1" --replaceCopyErrorSuccess3.刪除所有元數(shù)據(jù)
./us3cli modify us3://bucket/test.txt --metadata "" --replaceCopyErrorSuccess本命令用于恢復冷凍狀態(tài)的對象(object)為可讀狀態(tài)
./us3cli restore us3://bucket/test.txtCopyErrorSuccess
數(shù)據(jù)解凍整個目錄中所有文件
./us3cli restore -r us3://bucket/testCopyErrorSuccess
批量激活文件并設(shè)置并發(fā)數(shù)為30
./us3cli restore -r us3://bucket/test --parallel 30CopyErrorSuccess該命令用于計算文件etag值
./us3cli etag main.goName Etag main.go AQAAAEpmwm87EANJQDpLTEmxsjR7-R0NCopyErrorSuccess
計算us3文件etag值
./us3cli etag us3://bucket1/test.txtName Etag us3://bucket1/test.txt AQAAAEpmwm87EANJQDpLTEmxsjR7-R0NCopyErrorSuccess
計算標準輸入etag值
cat test.txt | ./us3cli etag -Name Etag [-] SmbCbzsQA0lAOktMSbGyNHv5HQ0=CopyErrorSuccess
計算多個文件etag
cat test4.txt | ./us3cli etag us3://bucket1/test.txt us3://bucket1/test2.txt test3.txt -Name Etag us3://bucket1/test.txt AQAAAEpmwm87EANJQDpLTEmxsjR7-R0Nus3://bucket1/test2.txt AQAAAEpmwm87EANJQDpLTEmxsjR7-R0Ntest3.txt AQAAAHPuBl-6VRpzVHiBFjSOVhLrcsam[-] SmbCbzsQA0lAOktMSbGyNHv5HQ0=CopyErrorSuccess本命令用于創(chuàng)建Token
本命令用于刪除Token
本命令用于更新Token
本命令用于列出和描述Token
....
- 描述某個特定的tokenCopyErrorSuccessus3cli describe-token --token-id c1fd74ad-9c04-4ee2-bb1e-xxxxxxxxx --region cn-bj --projectid org-xxxxx Token Id: c1fd74ad-9c04-4ee2-bb1e-xxxxxxxx Token Name: test-token Allowed buckets: [] Allowed operations: [TOKEN_ALLOW_NONE] Allowed prefixes: [] Exipre time: 86400 Private key: dxxxxxxxxxxxxxxxxxxxxxx Public key: TOKEN_xxxxxxxxxxxxxxxxxxxx
## update本命令用于版本更新注意:1.windows用戶更新后會產(chǎn)生一個名為config.temp的臨時文件,在下一次運行us3cli時會自動刪除。2.將本工具放入bin目錄下執(zhí)行時,更新操作會出現(xiàn)找不到文件的問題,具體解決方案請查看常見問題頁面。### 命令格式CopyErrorSuccessus3cli update [--force]
### 參數(shù)說明CopyErrorSuccess-f, --force :忽略版本,強制更新 -h, --help :當前命令使用說明
##### 使用示例CopyErrorSuccess./us3cli update
Your version is not the latest version, do you update it now(y or n):y Downloaded latest version package,saved as: us3cli-linux64
## version本命令用于查看工具版本### 命令格式CopyErrorSuccessus3cli version
### 使用示例CopyErrorSuccess./us3cli version
us3cli version 1.2.0
```