ossutil提供了進階命令、API級命令、輔助命令等三類命令。
命令結構
ossutil常用的命令格式如下:
ossutil command [argument] [flags]
ossutil command subcommond [argument] [flags]
ossutil topic
argument:參數,為字串。
flags:選項,支援短名字風格
-o[=value]/ -o [ value]
和長名字風格--options[=value]/--options[ value]
。如果多次指定某個排它參數,則僅最後一個值生效。
命令樣本如下:
命令:
ossutil cat oss://bucket/object
多級命令:
ossutil api get-bucket-cors --bucket bucketexample
說明主題:
ossutil filter
命令列表
ossutil 提供了三類命令:
進階命令
用於常用的對對象或者儲存空間的操作環境,例如儲存空間建立、刪除、資料拷貝、對象屬性修改等。
命令名
含義
建立儲存空間
刪除儲存空間
擷取儲存或者指定首碼所佔的儲存空間大小
顯示儲存空間或者對象的描述資訊
建立一個名字有尾碼字元
/
的對象將內容上傳到追加類型的對象末尾
將對象內容串連到標準輸出
列舉儲存空間或者對象
上傳、下載或拷貝對象
刪除儲存空間裡的對象
設定對象的屬性
產生對象的預簽名URL
恢複冷凍狀態的對象為可讀狀態
將對象恢複成指定的版本
將本地檔案目錄或者對象從源端同步到目的端
計算檔案/對象的雜湊值
API級命令,提供了API操作的直接存取,支援該介面的配置參數。
說明僅列舉部分命令,您可以通過
ossutil api -h
查看所有命令。命令名
含義
設定、修改Bucket的存取權限
擷取存取權限
....
設定跨域資源共用規則
擷取跨域資源共用規則
刪除跨域資源共用規則
輔助命令,例如設定檔的配置、額外的說明主題等。
命令名
含義
擷取協助資訊
建立設定檔用以儲存配置項和訪問憑證
版本更新
顯示版本資訊
探測命令
命令選項類型
選項類型 | 選項 | 說明 |
字串 | --option string |
例如:--acl private。 |
布爾值 | --option | 開啟或關閉某一選項。 例如:--dry-run。 |
整數 | --option Int | 不帶正負號的整數。 例如:--read-timeout 10。 |
時間戳記 | --option Time | ISO 8601格式,即DateTime或Date。 例如:--max-mtime 2006-01-02T15:04:05。 |
位元組單位尾碼 | --option SizeSuffix | 預設單位是位元組(B),也可以使用單位尾碼形式,支援的單位尾碼為:K(KiB)=1024位元組、M(MiB)、G(GiB)、G(GiB)、T(TiB)、P(PiB)、E(EiB) 例如:最小size為1024位元組 --min-size 1024 --min-size 1K |
時間單位尾碼 | --option Duration | 時間單位,預設單位是秒。支援的單位尾碼為:ms 毫秒,s 秒,m 分鐘,h 小時,d 天,w 星期,M 月,y 年。 支援小數。例如:1.5天 --min-age 1.5d |
字串列表 | --option strings | 支援單個或者多個同名選項,支援以逗號(,)分隔的多個值。 支援多選項輸入的單值。 例如:--metadata user=jack,email=ja**@test.com --metadata address=china |
字串數組 | --option stringArray | 支援單個或者多個同名選項,只支援多選項輸入的單值。 例如 :--include *.jpg --include *.txt。 |
從非命令列中載入資料
一般情況下,參數的值都放在命令列裡,當參數值比較複雜時,需要從檔案載入參數值;當需要串聯多個命令操作時,需要標準輸中載入參數值。所以,對需要支援多種載入參數值的參數,做了如下約定:
以
file://
開始的,表示從檔案路徑中載入。當參數值為
-
時,表示從標準輸入中載入。
例如, 設定儲存空間的跨網域設定,以JSON參數格式為例,通過檔案方式載入跨域參數。cors-configuration.json檔案如下:
{
"CORSRule": {
"AllowedOrigin": ["www.aliyun.com"],
"AllowedMethod": ["PUT","GET"],
"MaxAgeSeconds": 10000
}
}
ossutil api put-bucket-cors --bucket examplebucket --cors-configuration file://cors-configuration.json
通過選項參數值載入跨域參數,cors-configuration.json的緊湊形式如下:
{"CORSRule":{"AllowedOrigin":["www.aliyun.com"],"AllowedMethod":["PUT","GET"],"MaxAgeSeconds":10000}}
ossutil api put-bucket-cors --bucket examplebucket --cors-configuration "{\"CORSRule\":{\"AllowedOrigin\":[\"www.aliyun.com\"],\"AllowedMethod\":[\"PUT\",\"GET\"],\"MaxAgeSeconds\":10000}}"
從標準輸入載入參數的樣本如下:
cat cors-configuration.json | ossutil api put-bucket-cors --bucket examplebucket --cors-configuration -
控制命令輸出
輸出格式
對ossutil api下的子命令,以及du、stat、ls命令,支援通過--output-format
參數調整其輸出格式,當前支援的格式如下:
格式名稱 | 說明 |
raw | 以原始方式輸出,即服務端返回什麼內容,則輸出什麼內容。 |
json | 輸出採用JSON字串的格式。 |
yaml | 輸出採用YAML字串的格式。 |
例如:以get-bucket-cors
為例,原始內容如下:
ossutil api get-bucket-cors --bucket bucketexample
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>www.aliyun.com</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>10000</MaxAgeSeconds>
</CORSRule>
<ResponseVary>false</ResponseVary>
</CORSConfiguration>
轉成JSON如下:
ossutil api get-bucket-cors --bucket bucketexample --output-format json
{
"CORSRule": {
"AllowedMethod": [
"PUT",
"GET"
],
"AllowedOrigin": "www.aliyun.com",
"MaxAgeSeconds": "10000"
},
"ResponseVary": "false"
}
篩選輸出
ossutil提供了基於JSON的內建用戶端篩選功能,通過--output-query value
選項使用。
該選項僅支援ossutil api下的子命令。
該功能基於JMESPath文法,當使用該功能時,會把返回的內容轉成JSON,然後再使用JMESPath進行篩查,最後按照指定的輸出格式輸出。有關JMESPath 文法的說明,請參見JMESPath Specification。
例如:以get-bucket-cors為例,只輸出AllowedMethod內容,樣本如下:
ossutil api get-bucket-cors --bucket bucketexample --output-query CORSRule.AllowedMethod --output-format json
[
"PUT",
"GET"
]
友好顯示
對於進階命令(du、stat),提供了--human-readable
選項,對位元組、數量資料,提供了以人類可讀方式輸出資訊。即位元組資料轉成Ki|Mi|Gi|Ti|Pi尾碼格式(1024 base),數量資料轉成k|m|g|t|p尾碼格式(1000 base)。
例如:原始模式
ossutil stat oss://bucketexample
ACL : private
AccessMonitor : Disabled
ArchiveObjectCount : 2
ArchiveRealStorage : 10
ArchiveStorage : 131072
...
StandardObjectCount : 119212
StandardStorage : 66756852803
Storage : 66756852813
StorageClass : Standard
TransferAcceleration : Disabled
友好模式
ossutil stat oss://bucketexample --human-readable
ACL : private
AccessMonitor : Disabled
ArchiveObjectCount : 2
ArchiveRealStorage : 10
ArchiveStorage : 131.072k
...
StandardObjectCount : 119.212k
StandardStorage : 66.757G
Storage : 66.757G
StorageClass : Standard
TransferAcceleration : Disabled
命令返回碼
通過進程等方式調用ossutil時,無法即時查看回顯資訊。ossutil支援在進程運行結束後,根據不同的運行結果產生不同的返回碼,具體的返回碼及其含如下。您可以通過以下方式擷取最近一次運行結果的返回碼,然後根據返回碼分析並處理問題。
Linux
執行命令擷取返回碼:echo $?
。
Windows
執行命令擷取返回碼:echo %errorlevel%
。
macOS
執行命令擷取返回碼:echo $?
。
返回碼 | 含義 |
0 | 命令操作成功,發送到服務端的請求執行正常,服務端返回200響應。 |
1 | 參數錯誤,例如缺少必需的子命令或參數,或使用了未知的命令或參數。 |
2 | 該命令已成功解析,並已對指定服務發出了請求,但該服務返回了錯誤(非2xx響應)。 |
3 | 調用OSS GO SDK時,遇到的非服務端錯誤。 |
4 | 大量操作時,例如cp、rm部分請求發生了錯誤。 |
5 | 中斷錯誤。命令執行過程中,您通過ctrl +c取消某個命令。 |