ossutil set-meta コマンドを使用して、OSS 内のオブジェクトのメタデータを設定、更新、または削除します。オブジェクトのメタデータには、標準 HTTP ヘッダーおよびユーザーメタデータ(X-Oss-Meta- プレフィックス付きヘッダー)が含まれます。
100 MB を超える Cold Archive または Deep Cold Archive オブジェクトに対しては、set-meta コマンドがサーバー側のタイムアウトにより失敗する場合があります。その場合は、代わりに cp コマンド を使用してください。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
実行する操作に必要な RAM 権限を付与済みであること:詳細については、「RAM ユーザーへのカスタムポリシーのアタッチ」をご参照ください。
操作 必要な権限 単一オブジェクト oss:GetObject、oss:PutObject、oss:GetObjectVersion、oss:GetObjectAcl複数オブジェクト oss:GetObject、oss:PutObject、oss:GetObjectVersion、oss:ListObjectsossutil バージョン 1.6.16 以降をインストール済みであること。それより前のバージョンでは、ご利用のオペレーティングシステムに応じてバイナリ名を変更する必要があります。詳細については、「ossutil コマンド リファレンス」をご参照ください。
コマンド構文
ossutil set-meta oss://bucketname[/prefix]
[header:value#header:value...]
[--update]
[--delete]
[-r, --recursive]
[-f, --force]
[--object-file <value>]
[--snapshot-path <value>]
[--disable-ignore-error]
[--version-id <value>]
[--include <value>]
[--exclude <value>]パラメーターとオプション
| パラメーター/オプション | 説明 |
|---|---|
bucketname | バケットの名称です。 |
prefix | バケット内のリソース名(ディレクトリやオブジェクトなど)に一致するプレフィックスです。 |
header:value#header:value... | キーと値のペア形式で指定するメタデータヘッダーです。ヘッダーのキーは大文字小文字を区別しませんが、値は大文字小文字を区別します。# を使用して複数のヘッダーを区切ります。例: Cache-Control:no-cache#Expires:2022-10-12T00:00:00.000Z。サポートされるヘッダーの一覧は、後述の「サポートされるヘッダー」をご参照ください。 |
--update (-u) | 指定したヘッダーのみを更新します。--delete オプションとは併用できません。 |
--delete | ユーザーメタデータヘッダー(X-Oss-Meta- プレフィックス付きヘッダー)のみを削除します。--update オプションとは併用できません。 |
-r、--recursive | 指定したプレフィックスに一致するすべてのオブジェクトに対して操作を適用します。 |
-f、--force | 確認プロンプトを表示せずに操作を実行します。 |
--object-file | 処理対象のオブジェクト名を 1 行ずつ記述したローカルの TXT または XML ファイルのパスです。 |
--snapshot-path | 操作スナップショットの保存先パスです。以前の実行で既にスナップショットが作成済みのオブジェクトはスキップされます。-r/--recursive オプションまたは --object-file オプションと併用する必要があります。 |
--disable-ignore-error | バッチ操作中のエラーを無視しないように指定します。 |
--version-id | 処理対象のオブジェクトのバージョン ID です。バケットのバージョン管理が有効または一時停止されている場合にのみ適用されます。 |
--include | 指定したパターンに一致するオブジェクトのみを対象とします。詳細については、「--include および --exclude オプション」をご参照ください。 |
--exclude | 指定したパターンに一致するオブジェクトを除外します。詳細については、「--include および --exclude オプション」をご参照ください。 |
サポートされるヘッダー
Expires (time.RFC3339: 2006-01-02T15:04:05Z07:00)
X-Oss-Object-Acl
Origin
X-Oss-Storage-Class
Content-Encoding
Cache-Control
Content-Disposition
Accept-Encoding
X-Oss-Server-Side-Encryption
Content-Type
X-Oss-Meta- プレフィックス付きヘッダーこれらのヘッダーの使用方法については、「オブジェクトのメタデータを管理」をご参照ください。
操作モード
set-meta コマンドは、以下の 3 種類のモードをサポートしています。ご要件に合ったモードを選択してください。
| モード | フラグ | 効果 |
|---|---|---|
| 上書き | (フラグなし) | 指定したメタデータを設定します。header:value を省略した場合、ossutil は既存の X-Oss-Meta-* ヘッダーを変更せず保持し、HTTP ヘッダーについても保持するかどうかを確認プロンプトで尋ねます。 |
| 更新 | --update | 指定したヘッダーのみを更新します。他のすべてのメタデータは変更されません。ヘッダーの値を空欄にした場合、元の値が保持されます。 |
| 削除 | --delete | X-Oss-Meta-* ヘッダーのみを削除します。標準 HTTP ヘッダーはこのフラグでは削除できません。 |
オブジェクトのメタデータの設定または更新
単一オブジェクト
オブジェクトのアクセス制御リスト(ACL)を private に設定します。
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Object-Acl:private他のメタデータを変更せずに、オブジェクトの ACL を public-read に更新します(--update を使用)。
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Object-Acl:public-read --update特定のオブジェクトバージョンのストレージクラスを標準ストレージに設定します。
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Storage-Class:Standard \
--version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRk特定のオブジェクトバージョンのストレージクラスをコールドアーカイブストレージに設定します。
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Storage-Class:ColdArchive \
--version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRkストレージクラスの変更は、コマンドの実行完了後に有効になります。バージョン ID の取得方法については、「ls」をご参照ください。
共通プレフィックスを持つ複数オブジェクト
src プレフィックスを持つすべてのオブジェクトについて、Cache-Control を no-cache に、ACL を private に設定します。
ossutil set-meta oss://examplebucket/src Cache-Control:no-cache#X-Oss-Object-Acl:private -rディレクトリ内のすべての .jpg オブジェクトについて、ストレージクラスを低頻度アクセス(IA)に更新します。
ossutil set-meta oss://examplebucket/desfolder/ X-Oss-Storage-Class:IA \
--include "*.jpg" -u -rファイル名に abc を含むオブジェクトについて、ストレージクラスをアーカイブに更新します。ただし、.jpg および .txt ファイルは除外します。
ossutil set-meta oss://examplebucket/desfolder/ X-Oss-Storage-Class:Archive \
--include "*abc*" --exclude "*.jpg" --exclude "*.txt" -u -rバッチ操作中に 1 つのオブジェクトでエラーが発生した場合、ossutil はそのエラーを ossutil_output ディレクトリにログ出力し、残りのオブジェクトの処理を継続します。ファイル一覧から指定する複数オブジェクト
異なるディレクトリにあるオブジェクトのメタデータを更新するには、ローカルファイルにオブジェクト名を一覧表示し、--object-file オプションで指定します。
オブジェクト名を 1 行ずつ記述したファイル(例:
localfile.txt)を作成します。exampleobject1.jpg dir1/exampleobject2.png dir2/exampleobject3.txtコマンドを実行します。
ossutil set-meta oss://examplebucket \ Cache-Control:no-cache#X-Oss-Object-Acl:private \ --update --object-file localfile.txt --snapshot-path dir/
期待される出力
正常終了時には、経過時間が表示されます。
0.106852(s) elapsedユーザーメタデータの削除
--delete フラグは、ユーザーメタデータヘッダー(X-Oss-Meta- プレフィックス付きヘッダー)のみを削除します。標準 HTTP ヘッダーはこの方法では削除できません。
単一オブジェクト
オブジェクトから特定のユーザーメタデータヘッダーを削除します。値を空欄のまま指定します。
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Meta-Createdby --deleteファイル一覧から指定する複数オブジェクト
オブジェクト名を一覧表示したファイルを作成します。
exampleobject1.jpg dir1/exampleobject2.png dir2/exampleobject3.txtコマンドを実行します。
ossutil set-meta oss://examplebucket X-Oss-Meta-Location \ --delete --object-file localfile.txt --snapshot-path dir/
期待される出力
0.106846(s) elapsed共通オプション
別のリージョンまたは別の Alibaba Cloud アカウントが所有するバケットを対象とする場合、関連するオプションを追加します。
| オプション | 説明 |
|---|---|
-e | バケットが配置されているリージョンのエンドポイントです。 |
-i | バケットを所有する Alibaba Cloud アカウントの AccessKey ID です。 |
-k | バケットを所有する Alibaba Cloud アカウントの AccessKey Secret です。 |
例:中国(上海)リージョンに配置され、別の Alibaba Cloud アカウントが所有するバケット内のオブジェクトのメタデータを設定します。
ossutil set-meta oss://testbucket/testobject.jpg X-Oss-Object-Acl:private \
-e oss-cn-shanghai.aliyuncs.com \
-i yourAccessKeyID \
-k yourAccessKeySecret共通オプションの完全な一覧については、「共通オプション」をご参照ください。
結果の検証
set-meta コマンド実行後、stat コマンドを使用して、メタデータが正しく適用されたかを確認します。
ossutil stat oss://examplebucket/exampleobject.txt詳細については、「stat」をご参照ください。
次のステップ
オブジェクトのメタデータを管理 — 各メタデータヘッダーの意味と効果について理解する
ls — オブジェクトの一覧表示およびバージョン ID の取得
cp — 大規模な Cold Archive または Deep Cold Archive オブジェクトのストレージクラス変更には
cpコマンドを使用する共通オプション —
-e、-i、-kなどの共有オプションの完全なリファレンス