Alibaba Cloud CLI は、Object Storage Service (OSS) のコマンドラインインターフェイス (CLI) である ossutil を統合しています。この統合により、統一された CLI 環境で OSS リソースを管理できます。このトピックでは、Alibaba Cloud CLI で ossutil を使用する方法について説明します。
背景
ossutilを使用すると、Windows、Linux、または macOS システムから OSS データを管理できます。これは、Alibaba Cloud CLI にプラグインとして統合されています。Alibaba Cloud CLI からossutilを直接呼び出して、バケットやオブジェクトなどのコア OSS リソースを管理できます。version 3.0.304以降、Alibaba Cloud CLI は<a baseurl="t3144192_v1_0_0.xdita" data-node="4930824" data-root="39083" data-tag="xref" href="t2720201.xdita#" id="cf22035ef1brd">ossutil 2.0</a>を統合し、より安定した効率的なユーザーエクスペリエンスを提供します。ossutil 1.0とossutil 2.0の両方と互換性があり、ossutil 1.0 のコマンドも引き続き使用できます。ossutil 2.0のすべての新機能とパフォーマンスの向上を活用できるよう、Alibaba Cloud CLI を最新バージョンにアップグレードすることをお勧めします。Alibaba Cloud CLI における
ossutil 1.0とossutil 2.0の主な違いは次のとおりです。
ossutil 2.0
Alibaba Cloud CLI の最新バージョンでは、ossutil 2.0 は最新バージョンへの自動チェックとアップグレードをサポートしています。
updateコマンドを実行する必要はありません。ossutil 2.0 のバージョンは Alibaba Cloud CLI のバージョンとは独立しています。更新は CLI のバージョンに依存しません。
構文
Alibaba Cloud CLI における ossutil 2.0 のコマンド構文は次のとおりです。
aliyun ossutil command [argument] [flags]
aliyun ossutil command subcommond [argument] [flags]
aliyun ossutil topicargument: パラメーターで、文字列です。flags: オプションです。ショートネームスタイル-o[=value]/ -o [value]とロングネームスタイル--options[=value]/--options[value]をサポートします。排他的なオプションを複数回指定した場合、最後の値のみが有効になります。
以下にコマンドの例を示します。
コマンド:
aliyun ossutil cat oss://bucket/object複数レベルのコマンド:
aliyun ossutil api get-bucket-cors --bucket bucketexampleヘルパーコマンド:
aliyun ossutil filter
コマンド
ossutil 2.0 は、高レベルコマンド、API レベルコマンド、補助コマンドの 3 種類のコマンドを提供します。
高レベルコマンド: バケットの作成と削除、データのコピー、オブジェクト属性の変更など、オブジェクトやバケットに対する一般的な操作に使用されます。
コマンド
説明
バケットを作成します。
バケットを削除します。
バケットまたはディレクトリ (プレフィックス) のサイズをクエリします。
バケットまたはオブジェクトの説明を表示します。
名前が
/文字で終わるオブジェクトを作成します。追加可能オブジェクトの末尾にコンテンツを追加します。
オブジェクトのコンテンツを標準出力に送信します。
バケットまたはオブジェクトを一覧表示します。
オブジェクトをアップロード、ダウンロード、またはコピーします。
オブジェクトを削除します。
オブジェクトの属性を設定します。
オブジェクトの署名付き URL を生成します。
凍結されたオブジェクトを復元します。
オブジェクトを指定されたバージョンに戻します。
ソースから宛先にディレクトリまたはオブジェクトを同期します。
ファイルまたはオブジェクトのハッシュを計算します。
API レベルコマンド: API 操作への直接アクセスを提供し、対応する API 操作の設定パラメーターをサポートします。
コマンド
説明
バケットの ACL を設定または変更します。
バケットの ACL をクエリします。
....
オリジン間リソース共有 (CORS) ルールを作成します。
CORS ルールをクエリします。
CORS ルールを削除します。
...
補助コマンド: ファイルの設定や追加のヘルプ情報へのアクセスなどのタスクに使用されます。
コマンド
説明
ヘルプ情報を取得します。
設定項目とアクセス資格情報を保存するための設定ファイルを作成します。
ossutil のバージョンを表示します。
プローブタスクを実行します。
コマンドラインオプション
ossutil 2.0 のコマンドラインオプションは、グローバルオプションとローカルオプションに分かれています。グローバルオプションはすべてのコマンドに適用されます。ローカルオプションは特定のコマンドにのみ適用されます。コマンドラインオプションは最も高い優先順位を持ち、設定ファイルや環境変数で設定されたパラメーターを上書きできます。
コマンドラインオプションのクエリ
コマンドラインオプションの使用
グローバルコマンドラインオプション
オプションのタイプ
タイプ | オプション | 説明 |
文字列 | --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)、M (MiB)、G (GiB)、T (TiB)、P (PiB)、E (EiB) があります。 たとえば、最小サイズ 1024 バイトは次のように指定できます。 --min-size 1024 --min-size 1K |
時間単位 | --option Duration | 時間単位。デフォルトの単位は秒 (s) です。サポートされている時間単位は、ミリ秒 (ms)、秒 (s)、分 (m)、時間 (h)、日 (d)、週 (w)、月 (M)、年 (y) です。 数値は 10 進数にすることができます。 たとえば、最小時間単位 1.5 日は次のように指定できます。 --min-age 1.5d |
文字列リスト | --option strings | コマンドでオプションを 1 回または複数回指定できます。オプションの各出現に対して、単一の値またはカンマ区切りの複数の値を指定できます。 例: --metadata user=jack,email=ja**@test.com --metadata address=china |
文字列配列 | --option stringArray | コマンドでオプションを 1 回または複数回指定できます。オプションの各出現に対して、1 つの値のみを指定できます。 例: --include *.jpg --include *.txt |
ファイルからのデータ読み込み
ほとんどの場合、コマンドラインで直接パラメーター値を指定します。複雑な値を処理する必要がある場合、ファイルから値を読み込むと効率が向上します。コマンドを連結する場合、標準入力を使用してパラメーター値を指定する必要があります。パラメーターが異なる方法で値を取ることができる場合:
値が
file://で始まる場合、データは指定されたファイルから読み込まれます。値が
-の場合、データは標準入力から読み込まれます。
たとえば、JSON 形式で設定される CORS ルールを作成する場合、次のサンプルコマンドは、cors-configuration.json ファイルから CORS 設定を読み込んで CORS ルールを作成します。
{
"CORSRule": {
"AllowedOrigin": ["www.aliyun.com"],
"AllowedMethod": ["PUT","GET"],
"MaxAgeSeconds": 10000
}
}aliyun ossutil api put-bucket-cors --bucket examplebucket --cors-configuration file://cors-configuration.json次のサンプルコマンドは、コマンドラインで JSON 設定データを取得して CORS ルールを作成します。
{"CORSRule":{"AllowedOrigin":["www.aliyun.com"],"AllowedMethod":["PUT","GET"],"MaxAgeSeconds":10000}}aliyun ossutil api put-bucket-cors --bucket examplebucket --cors-configuration "{\"CORSRule\":{\"AllowedOrigin\":[\"www.aliyun.com\"],\"AllowedMethod\":[\"PUT\",\"GET\"],\"MaxAgeSeconds\":10000}}"次のサンプルコマンドは、標準入力から設定を取得して CORS ルールを作成します。
cat cors-configuration.json | aliyun ossutil api put-bucket-cors --bucket examplebucket --cors-configuration -コマンド出力の制御
出力フォーマット
du、stat、ls コマンドおよび api コマンドのサブコマンドで --output-format パラメーターを使用して、出力をフォーマットできます。次の表に、--output-format オプションの有効な値を示します。
フォーマット | 説明 |
raw | 生の形式で出力を返します。つまり、サーバーがコンテンツを返す形式です。 |
json | 出力を JSON 形式で返します。 |
yaml | 出力を YAML 形式で返します。 |
次の例では、get-bucket-cors コマンドの出力は生の形式です。
aliyun 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 でフォーマットされています。
aliyun 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 オプションを使用して出力をクエリできます。
このオプションは、API コマンドセットのサブコマンドにのみ適用されます。
出力クエリ機能は JMESPath に基づいています。出力クエリ機能を使用すると、出力は JSON でフォーマットされ、JMESPath クエリ式に基づいてフィルタリングされ、指定された形式で返されます。JMEPath の詳細については、「JMESPath 仕様」をご参照ください。
次の例では、get-bucket-cors コマンドは AllowedMethod パラメーターの値のみを返します。
aliyun ossutil api get-bucket-cors --bucket bucketexample --output-query CORSRule.AllowedMethod --output-format json
[
"PUT",
"GET"
]人間が読みやすい表示
ossutil は --human-readable オプションを提供しており、du および stat コマンドの出力のデータサイズと数量をより人間が読みやすい方法で表示できます。具体的には、データサイズは 1024 ベースの KiB、MiB、GiB、TiB、PiB で表示され、数量は 1000 ベースの単位略語 k、m、g、t、p を使用して表示されます。
Raw モードの例
aliyun ossutil stat oss://bucketexample
ACL : private
AccessMonitor : Disabled
ArchiveObjectCount : 2
ArchiveRealStorage : 10
ArchiveStorage : 131072
...
StandardObjectCount : 119212
StandardStorage : 66756852803
Storage : 66756852813
StorageClass : Standard
TransferAcceleration : Disabled人間が読みやすいモードの例
aliyun 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 を呼び出すと、エコー情報をリアルタイムで表示できません。プロセスが終了すると、結果に基づいてリターンコードが表示されます。次のコマンドを実行して、以前に実行したコマンドのリターンコードを表示し、トラブルシューティングに使用できます。
Linux
echo $? コマンドを実行して、以前に実行したコマンドのリターンコードを表示します。
Windows
echo %errorlevel% コマンドを実行して、以前に実行したコマンドのリターンコードを表示します。
macOS
echo $? コマンドを実行して、以前に実行したコマンドのリターンコードを表示します。
リターンコード | 説明 |
0 | 成功を示します。サーバーに送信されたリクエストは正常に処理され、サーバーはステータスコード 200 を返しました。 |
1 | パラメーターエラーを示します。たとえば、必要なサブコマンドまたはパラメーターが欠落しているか、コマンドまたはパラメーターが不明です。 |
2 | サーバーエラーを示します。コマンドはリクエストをサーバーに正常に送信しましたが、サーバーはエラー (2xx 以外のステータスコード) を返しました。 |
3 | OSS SDK for Go の呼び出し中にサーバー側以外のエラーが発生したことを示します。 |
4 | cp や rm コマンドなどを使用したバッチ処理での部分的な失敗を示します。 |
5 | 中断を示します。コマンドは |
例
例 1: ローカルファイル upload.rar を bucket という名前のバケットに 20 MB/s の速度でアップロードします。デフォルトの単位はバイト/秒 (B/s) です。
aliyun ossutil cp D:\\upload.rar oss://bucket/ --bandwidth-limit 20971520例 2: ローカルファイル file.rar を bucket という名前のバケットに 50 MB/s の速度でアップロードします。指定された単位はメガバイト/秒 (MB/s) です。
aliyun ossutil cp D:\\file.rar oss://bucket/dir -r --bandwidth-limit 50M例 3: bucket という名前のバケットからオブジェクト download.rar を現在のディレクトリにダウンロードし、ダウンロード速度を 20 MB/s に制限します。
aliyun ossutil cp oss://bucket/download.rar . --bandwidth-limit 20971520
ossutil 1.0
よくある質問
ossutil の使用中にエラーが発生した場合は、次のトピックを参照してエラーをトラブルシューティングしてください。