qshell是利用七牛文檔上公開的API實現的一個方便開發者測試和使用七牛API服務的命令行工具。該工具設計和開發的主要目的就是幫助開發者快速解決問題。目前該工具融合了七牛存儲,CDN,以及其餘的一些七牛服務中常用到的方法對應的便捷命令,這個工具是真的好用!我目前使用過的有批量重命名,採集網上的資源到七牛雲空間!linux
GitHub:https://github.com/qiniu/qshellgit
該工具使用Go語言編寫而成,固然爲了方便不熟悉Go或者急於使用工具來解決問題的開發者,七牛雲提供了預先編譯好的各主流操做系統平臺的二進制文件供你們下載使用,因爲平臺的多樣性,七牛雲把這些二進制打包放到一個文件裏面,請你們根據下面的說明各自選擇合適的版原本使用。github
版本 | 支持平臺 | 連接 |
---|---|---|
qshell v2.4.0 | Windows X86 | 下載 |
qshell v2.4.0 | Windows amd64 | 下載 |
qshell v2.4.0 | Linux X86 | 下載 |
qshell v2.4.0 | Linux amd64 | 下載 |
qshell v2.4.0 | Linux Arm | 下載 |
qshell v2.4.0 | Mac OS | 下載 |
該工具因爲是命令行工具,因此只須要從上面的下載以後便可使用。其中文件名和對應系統關係以下:算法
文件名 | 描述 |
---|---|
qshell_linux_x86 | Linux 32位系統 |
qshell_linux_x64 | Linux 64位系統 |
qshell_windows_x86.exe | Windows 32位系統 |
qshell_windows_x64.exe | Windows 64位系統 |
qshell_darwin_x64 | Mac 64位系統,主流的系統 |
Linux和Mac平臺shell
(1)權限
若是在Linux或者Mac系統上遇到Permission Denied
的錯誤,請使用命令chmod +x qshell
來爲文件添加可執行權限。這裏的qshell
是上面文件重命名以後的簡寫。數據庫
(2)任何位置運行
對於Linux或者Mac,若是但願可以在任何位置均可以執行,那麼能夠把qshell
所在的目錄加入到環境變量$PATH
中去。假設qshell
命令被解壓到路徑/home/jemy/tools
目錄下面,那麼咱們能夠把以下的命令寫入到你所使用的bash所對應的配置文件中,若是是/bin/bash
,那麼就是~/.bashrc
文件,若是是/bin/zsh
,那麼就是~/.zshrc
文件中。寫入的內容爲:json
export PATH=$PATH:/home/jemy/tools
保存完畢以後,能夠經過兩種方式當即生效,其一爲輸入source ~/.zshrc
或者source ~/.bashrc
來使配置當即生效,或者徹底關閉命令行,而後從新打開一個便可,接下來就能夠在任何位置使用qshell
命令了。windows
Windows平臺centos
(1)閃退問題
本工具是一個命令行工具,在Windows下面請先打開cmd終端,經過cmd終端來使用qshell便可,不要雙擊打開,不然會出現閃退現象。api
(2)任何位置運行
若是你但願能夠在任意目錄下使用qshell
,請將qshell
工具可執行文件所在目錄添加到系統的環境變量中。因爲Windows系統是圖形界面,因此方便一點。假設qshell.exe
命令被解壓到路徑E:\jemy\tools
目錄下面,那麼咱們把這個目錄放到系統的環境變量PATH
裏面。
該工具備兩類命令,一類須要鑑權,另外一類不須要。
須要鑑權的命令都須要依賴七牛帳號下的 AccessKey
, SecretKey
和 Name
。因此這類命令運行以前,須要使用 account
命令來添加 AccessKey
,SecretKey
和Name
。
Name
是用戶能夠自定義的字符串,用來惟一表示AccessKey/SecretKey帳戶,qshell會對添加的每個帳戶信息加密保存,可使用自命令user
進行切換,切換帳戶的時候,須要使用帳戶惟一標識
Name
。
$ qshell account <Your AccessKey> <Your SecretKey> <Your Name>
其中name表示該帳號的名稱, 若是ak, sk, name首字母是"-", 須要使用以下的方式添加帳號, 這樣避免把該項識別成命令行選項:
$ qshell account -- <Your AccessKey> <Your SecretKey> <Your Name>
能夠連續使用qshell account 添加帳號ak, sk, name信息,qshell會保存這些帳號的信息, 可使用qshell user命令列舉帳號信息,在各個帳號之間切換, 刪除帳號等。
若是使用的2.3.0以前的版本account命令記錄的帳戶信息,須要先使用qshell user clean清楚保存的帳戶信息,而後使用qshell account命令從新記錄帳戶信息。
也可使用qshell的配置文件添加access_key和secret_key信息,具體配置方法參考下面配置文件一節。
qshell支持多種方式的帳戶管理:
那麼有可能上面三種方式都提供了帳戶的信息,所以這三種方式有個優先級(從高到低):
3 > 2 > 1
也就是說,若是命令行提供了ak/sk那麼使用命令行的信息;若是沒有提供就使用配置文件中的信息,若是配置文件沒有提供ak/sk, 那麼會去本地數據庫查找當前的用戶。
使用qshell user子命令能夠用來管理記錄的多帳戶信息。
linux上,使用bash
在centos上,須要安裝bash-completion包,默認該包沒有安裝
$ yum install bash-completion -y
給當前的bash加入自動補全, 運行命令
$ source <(qshell completion bash)
也能夠把這個配置加入bash的啓動文件中,這樣到bash啓動的時候,會自動加載qshell的補全配置:
$ echo "source <(qshell completion bash)" >> ~/.bashrc
Mac上,使用zsh
把以下代碼加入zsh的啓動文件中~/.zshrc, 而後source ~/.zshrc
if [ $commands[qshell] ]; then source <(qshell completion zsh) fi
該工具還有一些有用的選項參數以下:
參數 | 描述 |
---|---|
-d | 設置是否輸出DEBUG日誌,若是指定這個選項,則輸出DEBUG級別的日誌 |
-h | 打印命令列表幫助信息,遇到參數忘記的狀況下,可使用該命令 |
-v | 打印工具版本,反饋問題的時候,請提早告知工具對應版本號 |
-C | qshell配置文件, 其配置格式請看下一節 |
-L | 使用當前工做路徑做爲qshell的配置目錄 |
例子:
{ "hosts": { "rsf": "rs-test.qiniu.com" } }
若是想要更改io host爲io-test.qiniu.com的話,只須要繼續在上面的hosts中添加,以下:
{ "hosts": { "rs": "rs-test.qiniu.com", "io": "io-test.qiniu.com" } }
同理若是所有修改的話
{ "hosts": { "rs": "rs-test.qiniu.com", "io": "io-test.qiniu.com", "api": "", "rsf": "" } }
{ "access_key": "", "secret_key": "", }
這樣qshell會優先使用配置文件中配置的ak/sk信息,若是在這個配置文件中沒有找到密鑰信息,那麼會去qshell account記錄的本地數據庫尋找.
命令 | 類別 | 描述 | 詳細 |
---|---|---|---|
account | 帳號 | 設置或顯示當前用戶的AccessKey 和SecretKey |
文檔 |
batchdelete | 刪除 | 批量刪除七牛空間中的文件,能夠直接根據listbucket 的結果來刪除 |
文檔 |
delete | 刪除 | 刪除七牛空間中的一個文件 | 文檔 |
batchchgm | 修改 | 批量修改七牛空間中文件的MimeType | 文檔 |
chgm | 修改 | 修改七牛空間中的一個文件的MimeType | 文檔 |
batchchtype | 修改 | 批量修改七牛空間中的文件的存儲類型,支持普通存儲(0)和低頻存儲(1) | 文檔 |
chtype | 修改 | 修改七牛空間中的一個文件的存儲類型,支持普通存儲(0)和低頻存儲(1) | 文檔 |
batchexpire | 修改 | 批量修改七牛空間中的文件的生存時間 | 文檔 |
expire | 修改 | 修改七牛空間中的一個文件的生存時間 | 文檔 |
batchcopy | 拷貝 | 批量複製七牛空間中的文件到另外一個空間 | 文檔 |
copy | 拷貝 | 複製七牛空間中的一個文件 | 文檔 |
batchmove | 移動 | 批量移動七牛空間中的文件到另外一個空間 | 文檔 |
move | 移動 | 移動或重命名七牛空間中的一個文件 | 文檔 |
batchrename | 重命名 | 批量重命名七牛空間中的文件 | 文檔 |
batchstat | 查詢 | 批量查詢七牛空間中文件的基本信息 | 文檔 |
stat | 查詢 | 查詢七牛空間中一個文件的基本信息 | 文檔 |
buckets | 查詢 | 獲取當前帳號下全部的空間名稱 | 文檔 |
domains | 查詢 | 獲取指定空間的全部關聯域名 | 文檔 |
listbucket | 列舉 | 列舉七牛空間裏面的全部文件 | 文檔 |
listbucket2 | 列舉 | 列舉七牛空間裏面的全部文件 | 文檔 |
fput | 上傳 | 以文件表單的方式上傳一個文件 | 文檔 |
rput | 上傳 | 以分片上傳的方式上傳一個文件 | 文檔 |
qupload | 上傳 | 同步數據到七牛空間, 帶同步進度信息,和數據上傳完整性檢查(配置式) | 文檔 |
qupload2 | 上傳 | 同步數據到七牛空間, 帶同步進度信息,和數據上傳完整性檢查(命令式) | 文檔 |
qdownload | 下載 | 從七牛空間同步數據到本地,支持只同步某些前綴的文件,支持增量同步 | 文檔 |
get | 下載 | 下載存儲空間中的文件 | 文檔 |
fetch | 抓取 | 從Internet上抓取一個資源並存儲到七牛空間中 | 文檔 |
batchfetch | 抓取 | 從Internet上抓取一個資源並存儲到七牛空間中 | 文檔 |
sync | 抓取 | 從Internet上抓取一個資源並存儲到七牛空間中,適合大文件的場合 | 文檔 |
abfetch | 抓取 | 異步抓取網絡資源到七牛存儲空間 | 文檔 |
m3u8delete | m3u8 | 根據流媒體播放列表文件刪除七牛空間中的流媒體切片 | 文檔 |
m3u8replace | m3u8 | 修改流媒體播放列表文件中的切片引用域名 | 文檔 |
batchsign | 其餘 | 批量根據資源的公開外鏈生成資源的私有外鏈 | 文檔 |
dircache | 其餘 | 輸出本地指定路徑下全部的文件列表 | 文檔 |
prefetch | 其餘 | 更新七牛空間中從源站鏡像過來的文件 | 文檔 |
privateurl | 其餘 | 生成私有空間資源的訪問外鏈 | 文檔 |
命令 | 描述 | 詳細 |
---|---|---|
cdnrefresh | 批量刷新cdn的訪問外鏈或目錄 | 文檔 |
cdnprefetch | 批量預取cdn的訪問外鏈 | 文檔 |
命令 | 描述 | 詳細 |
---|---|---|
b64encode | base64編碼工具,可選是否使用UrlSafe方式,默認UrlSafe | 文檔 |
b64decode | base64解碼工具,可選是否使用UrlSafe方式,默認UrlSafe | 文檔 |
urlencode | url編碼工具 | 文檔 |
urldecode | url解碼工具 | 文檔 |
ts2d | 將timestamp(單位秒)轉爲UTC+8:00中國日期,主要用來檢查上傳策略的deadline參數 | 文檔 |
tms2d | 將timestamp(單位毫秒)轉爲UTC+8:00中國日期 | 文檔 |
tns2d | 將timestamp(單位100納秒)轉爲UTC+8:00中國日期 | 文檔 |
d2ts | 將日期轉爲timestamp(單位秒) | 文檔 |
ip | 根據淘寶的公開API查詢ip地址的地理位置 | 文檔 |
unzip | 解壓zip文件,支持UTF-8編碼和GBK編碼 | 文檔 |
reqid | 七牛自定義頭部X-Reqid解碼工具 | 文檔 |
qetag | 根據七牛的qetag算法來計算文件的hash | 文檔 |
saveas | 實時處理的saveas連接快捷生成工具 | 文檔 |
命令 | 類別 | 描述 | 詳細 |
---|---|---|---|
pfop | 提交 | 提交異步音視頻處理請求 | 文檔 |
prefop | 查詢 | 查詢七牛數據處理的結果 | 文檔 |
命令 | 類別 | 描述 | 詳細 |
---|---|---|---|
token | 其餘 | 計算upToken, Qbox token, Qiniu Token | 文檔 |
命令 | 類別 | 描述 | 詳細 |
---|---|---|---|
alilistbucket | 列舉 | 列舉阿里OSS空間裏面的全部文件 | 文檔 |
awslist | 列舉 | 列舉亞馬遜的存儲空間 | 文檔 |
awsfetch | 抓取 | 從亞馬遜存儲遷移數據到七牛存儲 | 文檔 |