フォーム読み込み中
こんにちは。
ソリューションアーキテクトの松田(@MatYoshr)です。
本記事は Alibaba Cloud Advent Calendar 2019 7日目の記事になります。
本記事は Alibaba Cloud 国際サイトの内容をベースに説明しています。
Alibaba Cloud の Object Storage Service(OSS)で先日のクロスリージョンレプリケーションに続き、オブジェクトのバージョン管理機能が一部リージョンで利用出来るようになったのはお気づきでしょうか?
まだ、ごく一部のリージョンでのみ利用可能な機能ですが、東京リージョンへのリリースの期待も込めてご紹介をさせて頂きたいと思います。
バージョン管理機能は同一のKEY(/path/to/ファイル名)を持つオブジェクトを更新する際の動作に影響します。
バージョン管理機能が無効化されている場合、
オブジェクトの識別はKEY
のみで行うことになります。
オブジェクトの更新時には以下の様な形になり元のオブジェクトは無くなります。
バージョン管理機能が有効化されている場合、
オブジェクトにVERSIONID
が付与され、VERSIONID
とKEY
でオブジェクトを識別できる様になります。
オブジェクトの更新時には、一意なVERSIONID
が付与された同じKEY
のオブジェクトが生成されることになります。
以下の様な形になり元のオブジェクトは保持されます。
機能としては以上の様にシンプルなので実際の設定などを見ていきたいと思います。
設定の方法は簡単でバケットの作成時にVersioning
を有効化すれば利用が可能です。
既に作成済みのバケットでバージョン管理機能を使用したい場合、基本設定から有効化が可能です。
設定状況はCLIから確認することも可能です。
aliyun oss bucket-versioning --method get oss://bucket-name
※-e oss-ap-southeast-3.aliyuncs.com
はOSSのエンドポイントに合わせての指定が必要です。
表示される結果がbucket versioning status:Enabled
となっていればバージョン管理機能が有効化されています。
とりあえず、適当にテキストファイルを作成してOSSにアップロードしてみます。
バージョン管理を有効化バケットのファイル一覧に見慣れぬ表示が増えています。
オブジェクトの履歴バージョンを表示する
のチェックを入れると少し画面の表示が変わります。
(Latest Version)
という表示が見えると思います。
テキストの内容をVer.2
に変えてファイルをアップロードしてみます。
想定どおり複数バージョンのバージョニングテスト.txt
が存在しています。
CLIでも確認してみたいと思います。
aliyun oss ls oss://bucket-name --all-versions
GUIの画面と同様に2つのオブジェクトが表示されます。
VERSIONID
がオブジェクトを一意に識別するためのIDです。
IS-LATEST
がtrue
なのがカレントバージョンのファイルになります。
この状態でCLIからカレントバージョンのファイルをcat
してみます。
aliyun oss cat oss://bucket-name/object
結果はVer.2
と後からアップロードしたオブジェクトの内容が表示されます。
では、次に最初にアップロードされた方のオブジェクトを指定してcatしてみます。
カレント以外のオブジェクトの指定には--version-id
のオプションを使用します。
aliyun oss cat oss://bucket-name/object --version-id VERSIONID
想定通りVer.1
と表示され複数のバージョンのオブジェクトを保持していることが確認できました。
一応、前のバージョンのファイルをダウンロードしてみます。
ファイルを開くと、ちゃんとVer.1
と書かれたファイルが取得できました。
ちなみに、注意点ですがこの状態はOSS的には以下のように認識されています。
複数バージョン保持すると言うことはその分のリソースを使用します。料金的にも複数バージョン保存分の料金が掛かります。
バケット単位での設定になるので有効化の必要性の検討やバケット設計は確りと行ってご利用ください。
バージョン管理を有効化した後に、本機能を無効化することが出来ません。
一時停止
でそれ以降の新しいバージョンの作成を止めることは可能です。
ただし、既存オブジェクトのバージョンは一時停止後も保持されます。
実際に停止してみると以下のようになります。
CLIの結果としてはbucket versioning status:Suspended
が帰ってきます。
この状態でVer.3
にしたファイルをアップロードしてみます。
既存オブジェクトのバージョンは保持されるので3つのオブジェクトが表示されますが、最新のオブジェクトにはVERSIONID
が付与されていません。
カレントのファイルyの内容を確認するとVer.3
が表示されます。
この状態で、Ver.4
に更新したファイルを再度アップロードすると・・・
4つ目のオブジェクトは作成されず、Latest Version
が上書きされました。
※バージョン管理機能を有効化する前と同じ動きになります。
試しに、カレントファイルの内容を確認するとVer.4
が表示されているので新しいオブジェクトに上書きされていることが確認できます。
なお、一時停止状態でも保存済みの過去バージョンのオブジェクトは正常に取得できます。
ちなみに、みんなが気になる何処で使えるのか?という点ですが、2019年11月末時点で利用可能なリージョンは以下の5つです。
東京が無いどころか、杭州も上海もシンガポールも入っていないという謎…… ※シンガポールは追加されました
順次、各リージョンへ展開されていくと思いますので、状況をウォッチしていきたいと思います。
条件に該当するページがございません