revert-versioning を実行すると、バージョン管理が有効なバケット内で削除されたオブジェクトを、直近の以前のバージョンに復元できます。
仕組み
バージョン管理が有効な OSS バケットでオブジェクトを削除すると、OSS は削除マーカーを挿入し、それまでのすべてのバージョンを保持します。revert-versioning コマンドはこの削除マーカーを削除することで、直近の以前のバージョンを再度現在のバージョンとして復活させます。
注: revert-versioning は、現在のバージョンが削除マーカーであるオブジェクトに対してのみ有効です。オブジェクトが削除ではなく上書きされた場合、このコマンドは影響を与えません。前提条件
作業を開始する前に、以下の要件を満たしていることを確認してください。
バージョン管理が有効な OSS バケット
対象バケットに対する
oss:ListObjectVersions権限およびoss:DeleteObjectVersion権限。詳細については、「RAM ユーザーへのカスタムポリシーのアタッチ」をご参照ください。ossutil がインストール済みであること。ossutil 1.6.16 以降のバージョンでは、バイナリ名として直接
ossutilを使用します。それ以前のバージョンでは、オペレーティングシステムに応じてバイナリ名を変更してください。詳細については、「ossutil コマンドリファレンス」をご参照ください。
構文
ossutil revert-versioning oss://bucketname[/prefix]
[--encoding-type <value>]
[-r, --recursive]
[--start-time <value>]
[--end-time <value>]
[--include <value>]
[--exclude <value>]
[--payer <value>]パラメーターとオプション
| パラメーター / オプション | 説明 |
|---|---|
bucketname | 復元対象のオブジェクトを含むバケットの名前。 |
prefix | 名前でオブジェクトおよびディレクトリをフィルターするためのプレフィックス。 |
--encoding-type | oss://bucketname の後に続くプレフィックスのエンコーディング方式。有効な値は url のみです。指定しない場合、プレフィックスはエンコードされません。 |
-r, --recursive | 指定されたプレフィックスに一致するすべてのオブジェクトを復元します。このオプションを指定しない場合、指定された単一のオブジェクトのみが復元されます。 |
--start-time | UNIX タイムスタンプ。この時刻より前に削除されたオブジェクトは復元されません。 |
--end-time | UNIX タイムスタンプ。この時刻より後に削除されたオブジェクトは復元されません。 |
--include | 指定されたパターンに一致するオブジェクトのみを復元します。詳細については、「--include および --exclude オプション」をご参照ください。 |
--exclude | 指定されたパターンに一致するオブジェクトをスキップします。詳細については、「--include および --exclude オプション」をご参照ください。 |
--payer | 操作の料金支払者。requester を指定すると、トラフィックおよびリクエスト料金がリクエスターに課金されます。 |
使用例
単一オブジェクトの復元
ossutil revert-versioning oss://examplebucket/exampleobject.jpgプレフィックスを持つすべてのオブジェクトの復元
ossutil revert-versioning oss://examplebucket/destdir -rバケット内のすべての削除済みオブジェクトの復元
ossutil revert-versioning oss://examplebucket -r特定の時間範囲内で削除されたオブジェクトの復元
次のコマンドは、2020 年 6 月 16 日 16:22:58 ~ 16:39:38 (UTC + 08:00) の間に削除されたオブジェクトを復元します。
ossutil revert-versioning oss://examplebucket -r --start-time 1592295778 --end-time 1592296778ファイル形式別でのオブジェクト復元
TXT 形式のオブジェクトのみを復元します。
ossutil revert-versioning oss://examplebucket --include "*.txt" -rJPG 形式のオブジェクトを除くすべてのオブジェクトを復元します。
ossutil revert-versioning oss://examplebucket --exclude "*.jpg" -r出力例
正常に実行された場合、復元されたオブジェクト数と経過時間が表示されます。
revert versioning object count is 10, batch list count is 10
0.066413(s) elapsed別のリージョンまたはアカウントのバケットへのアクセス
別のリージョンにあるバケットにアクセスするには、-e オプションでそのバケットのエンドポイントを指定します。別の Alibaba Cloud アカウントが所有するバケットにアクセスするには、-i および -k オプションでそのアカウントの AccessKey ID および AccessKey Secret を指定します。
次のコマンドは、中国 (上海) リージョンにあり、別のアカウントが所有する testbucket 内の exampletest.png を復元します。
ossutil revert-versioning oss://testbucket/exampletest.png -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret