全部產品
Search
文件中心

Object Storage Service:命令簡介

更新時間:Sep 05, 2024

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 提供了三類命令:

  • 進階命令

    用於常用的對對象或者儲存空間的操作環境,例如儲存空間建立、刪除、資料拷貝、對象屬性修改等。

    命令名

    含義

    mb

    建立儲存空間

    rb

    刪除儲存空間

    du

    擷取儲存或者指定首碼所佔的儲存空間大小

    stat

    顯示儲存空間或者對象的描述資訊

    mkdir

    建立一個名字有尾碼字元/的對象

    append

    將內容上傳到追加類型的對象末尾

    cat

    將對象內容串連到標準輸出

    ls

    列舉儲存空間或者對象

    cp

    上傳、下載或拷貝對象

    rm

    刪除儲存空間裡的對象

    set-props

    設定對象的屬性

    presign

    產生對象的預簽名URL

    restore

    恢複冷凍狀態的對象為可讀狀態

    revert

    將對象恢複成指定的版本

    sync

    將本地檔案目錄或者對象從源端同步到目的端

    hash

    計算檔案/對象的雜湊值

  • API級命令,提供了API操作的直接存取,支援該介面的配置參數。

    說明

    僅列舉部分命令,您可以通過ossutil api -h查看所有命令。

    命令名

    含義

    put-bucket-acl

    設定、修改Bucket的存取權限

    get-bucket-acl

    擷取存取權限

    ....

    put-bucket-cors

    設定跨域資源共用規則

    get-bucket-cors

    擷取跨域資源共用規則

    delete-bucket-cors

    刪除跨域資源共用規則

  • 輔助命令,例如設定檔的配置、額外的說明主題等。

    命令名

    含義

    help

    擷取協助資訊

    config

    建立設定檔用以儲存配置項和訪問憑證

    update

    版本更新

    version

    顯示版本資訊

    probe

    探測命令

命令選項類型

選項類型

選項

說明

字串

--option string

  • 字串參數可以包含ASCII字元集中的字母數字字元、符號和空格。

  • 如果包含空格時,需要用引號引起來。

例如:--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取消某個命令。