tencent cloud

Cloud Object Storage

最新情報とお知らせ
製品アップデート情報
製品のお知らせ
製品概要
製品概要
機能概要
応用シナリオ
製品の優位性
基本概念
リージョンとアクセスドメイン名
仕様と制限
製品の課金
課金概要
課金方式
課金項目
無料利用枠
記帳例
請求書の確認とダウンロード
お支払い遅れについて
よくある質問
クイックスタート
コンソールクイックスタート
COSBrowserクイックスタート
ユーザーガイド
リクエストの作成
バケット
オブジェクト
データ管理
バッチ処理
グローバルアクセラレーション
監視とアラーム
運用管理センター
データ処理
インテリジェントツールボックス使用ガイド
データワークフロー
アプリ統合
ツールガイド
ツール概要
環境のインストールと設定
COSBrowserツール
COSCLIツール
COSCMDツール
COS Migrationツール
FTP Serverツール
Hadoopツール
COSDistCpツール
HDFS TO COSツール
オンラインツール (Onrain Tsūru)
セルフ診断ツール
実践チュートリアル
概要
アクセス制御と権限管理
パフォーマンスの最適化
AWS S3 SDKを使用したCOSアクセス
データディザスタリカバリバックアップ
ドメイン名管理の実践
画像処理の実践
COSオーディオビデオプレーヤーの実践
データセキュリティ
データ検証
COSコスト最適化ソリューション
サードパーティアプリケーションでのCOSの使用
移行ガイド
サードパーティクラウドストレージのデータをCOSへ移行
データレークストレージ
クラウドネイティブデータレイク
メタデータアクセラレーション
データアクセラレーター GooseFS
データ処理
データ処理概要
画像処理
メディア処理
コンテンツ審査
ファイル処理
ドキュメントプレビュー
トラブルシューティング
RequestId取得の操作ガイド
パブリックネットワーク経由でのCOSへのファイルアップロード速度の遅さ
COSへのアクセス時に403エラーコードが返される
リソースアクセス異常
POST Objectの一般的な異常
セキュリティとコンプライアンス
データ災害復帰
データセキュリティ
クラウドアクセスマネジメント
よくある質問
よくあるご質問
一般的な問題
従量課金に関するご質問
ドメインコンプライアンスに関するご質問
バケット設定に関する質問
ドメイン名とCDNに関するご質問
ファイル操作に関するご質問
権限管理に関するご質問
データ処理に関するご質問
データセキュリティに関するご質問
署名付きURLに関するご質問
SDKクラスに関するご質問
ツール類に関するご質問
APIクラスに関するご質問
Agreements
Service Level Agreement
プライバシーポリシー
データ処理とセキュリティ契約
連絡先
用語集

バージョン管理の概要

PDF
フォーカスモード
フォントサイズ
最終更新日: 2024-06-26 10:57:13

概要

バージョン管理は同一のバケット内に同一のオブジェクトの複数のバージョンを保存する場合に使用します。例えば、1つのバケット内に、オブジェクトキーは同じpicture.jpgでも、バージョンIDが100000、100101、120002のように異なる複数のオブジェクトを保存することができます。ユーザーがあるバケットでバージョン管理機能を有効にすると、バケット内に保存したオブジェクトをバージョンIDに基づいて照会、削除または復元できるようになります。ユーザーが誤って削除したデータや、アプリケーションプログラムの障害によって消失したデータの回復に役立ちます。例えば、ユーザーがバージョン管理されたオブジェクトの削除操作を行う場合は、次のようになります。
オブジェクトを削除したい(完全削除ではない)場合、COSは削除されるオブジェクトに削除タグを挿入し、このタグが現在のオブジェクトのバージョンとなります。この削除タグに基づいて以前のバージョンを復元することができます。
オブジェクトを置き換えたい場合、COSは新たにアップロードされたオブジェクトに新しいバージョンIDを挿入します。バージョンIDに基づいて、置き換える前のオブジェクトを復元することも引き続き可能です。

バージョン管理の状態

バケットには3種類のバージョン管理状態があります。バージョン管理を有効にしていない状態、バージョン管理を有効にしている状態、バージョン管理の一時停止状態です。
バージョン管理を有効にしていない状態:バケットのデフォルトの初期状態であり、このときバージョン管理機能はオフになっています。
バージョン管理を有効にしている状態:バケットのバージョン管理機能をオンにすることを指し、このときバージョン管理は有効な状態になっています。バージョン管理状態はこのバケット内のすべてのオブジェクトに適用されます。バケットのバージョン管理を最初に有効にした時点から、このバケットに新たにアップロードされるオブジェクトには一意のバージョンIDが付与されます。
バージョン管理の一時停止状態:バケットのバージョン管理をオンにした状態から一時停止状態に変更することを指します(バージョン管理を有効にしていない状態に戻すことはできません)。この後にバケットにアップロードされるオブジェクトについては、バージョン管理されたオブジェクトが保存されなくなります。
注意:
1. 一度バージョン管理を有効にしたバケットは、バージョン管理を有効にしていない状態(初期状態)に戻すことはできません。ただし、このバケットのバージョン管理を一時停止することはでき、その後に新たにアップロードされるオブジェクトでは複数のバージョンが生成されなくなります。
2. バージョン管理を有効にする前にバケット内に保存されたオブジェクトのバージョンIDは、すべてnullとなっています。
3. バージョン管理を有効にする、または一時停止すると、COSがこれらのオブジェクトを処理する際のリクエスト方式が変更されます。オブジェクト自体は変更されません。
4. バケットのバージョン管理を一時停止できるのはルートアカウントと権限を持つサブアカウントのみです。

バージョン管理状態下のオブジェクトの管理

バケットがどのバージョン管理状態にある場合でも、その状態のバケット内のオブジェクトに対し、アップロード、照会および削除操作を行うことができます。バージョン管理を有効にしていない状態を除き、バージョン管理を有効にしている状態およびバージョン管理の一時停止状態であれば、バケット内のオブジェクトの照会および削除操作は、バージョンIDを指定してもしなくても行うことができます。
バージョン管理を有効にしていない状態:オブジェクトのアップロード、照会および削除などの操作方法に変更はありません。詳細については、オブジェクト管理ディレクトリ下のドキュメントをご参照ください。
バージョン管理を有効にしている状態およびバージョン管理の一時停止状態:オブジェクトのアップロード、照会および削除などの操作方法が従来の方法と異なる点は、バージョンIDが導入されている点です。オブジェクトの削除操作の実行には「削除タグ」の概念も加わっています。

バージョン管理を有効にしている状態のオブジェクトの管理

バケットバージョン管理を有効にする前にすでにバケット内に保存されていたオブジェクトについては、そのバージョンIDはnullとなります。バージョン管理を有効にした後も、バケット内の既存のオブジェクトは変更されず、既存オブジェクトに対するCOSの処理方式(リクエスト方式など)だけが変更されます。この時点で、新たにアップロードされた同名のオブジェクトは異なるバージョンとして同一のバケット内に存在することになります。バージョン管理を有効にしたバケット内でオブジェクトがどのように管理されるかについて、次にご説明します。
注意:
バージョン管理を有効にしていないバケットと、有効にしているバケットでは、ユーザーのオブジェクトのアップロード方法は同じですが、バージョンIDが異なります。バージョン管理を有効にしている場合、COSはオブジェクトに特定のバージョンIDを割り当てますが、バージョン管理を有効にしていない場合、バージョンIDは常にnullとなります。

オブジェクトのアップロード

バケットのバージョン管理を有効にすると、ユーザーがPUT、POSTまたはCOPY操作を実行した際、COSがこのバケットに保存するオブジェクトには一意のバージョンIDが自動的に追加されます。 下図のように、バージョン管理を有効にしたバケットにオブジェクトをアップロードすると、COSはそのオブジェクトに一意のバージョンIDを追加します。


バージョン管理オブジェクトのリストアップ

COSはバケットにバインドしたversionsパラメータにオブジェクトのバージョン情報を保存します。COSは保存時刻の順序に従ってオブジェクトのバージョンを返します。その際、直近のバージョンが最初に返されます。

特定のオブジェクトの全バージョン照会

次のプロセスによって、versionsパラメータおよびprefixリクエストパラメータを使用して、あるオブジェクトの全バージョンを照会できます。prefixに関するその他の情報については、GET Bucket Object versionsのドキュメントをご参照ください。 あるオブジェクトの全バージョンを照会する場合の、リクエストの例は次のとおりです。
GET /?versions&prefix=ObjectKey HTTP/1.1

データのメタバージョンの照会

ユーザーがGETリクエストを使用する際にバージョンIDを指定しなければ、オブジェクトの現在のバージョンを照会します。下図のように、GETリクエストには123.txtオブジェクトの現在のバージョン(直近のバージョン)が返されます。

ユーザーがGETリクエストを使用する際にバージョンIDを指定した場合は、指定したバージョンIDのオブジェクトを照会します。下図のように、GET versionIdリクエストによって指定したバージョン(現在のバージョンでも可)のオブジェクトを照会します。


オブジェクトバージョンのメタデータの照会

オブジェクトの内容ではなく、メタデータのみを照会したい場合は、HEAD操作を使用することができます。デフォルトでは最新バージョンのメタデータを取得します。指定したオブジェクトのバージョンのメタデータを照会したい場合は、リクエストの送信時にバージョンIDを指定します。 指定したバージョンのオブジェクトのメタデータを照会する手順は次のとおりです。
versionIdを照会するオブジェクトメタデータのバージョンIDに設定します。
指定したversionIdのHEAD操作リクエストを送信します。

オブジェクトの削除

必要に応じて、不要なオブジェクトのバージョンを随時削除することができます。ユーザーがバージョン管理を有効にしている状態でDELETEリクエストを使用するケースには次の2つがあります。
1. ユーザーがバージョンIDを指定せず、通常のDELETE操作を実行する場合。 この操作のケースは削除されたオブジェクトを「ごみ箱」に入れる場合に似ていますが、オブジェクトを完全に消去してはおらず、その後ユーザーが必要とする場合はデータを復元できます。 下図のように、ユーザーがDELETE操作の際にバージョンIDを指定しなかった場合、実際にはKey=123.txtのオブジェクトは削除されず、新しい削除タグが挿入され、新しいバージョンIDが追加されます。

注意:
COSはバケット内で、削除されるオブジェクトに新しいバージョンIDを持つ削除タグを挿入し、この削除タグが削除されるオブジェクトの現在のバージョンとなります。この削除タグのあるオブジェクトに対しGET操作の実行を試すと、COSはこのオブジェクトが存在しないと認識し、404エラーを返します。
2. ユーザーがバージョンIDを指定して、オブジェクトバージョンの削除操作を実行した場合、このケースではバージョン管理されたオブジェクトを永久に削除することができます。


初期バージョンの復元

バージョン管理によってオブジェクトの初期バージョンを復元することができます。この操作を実行するには2つの方法があります。
1. オブジェクトの初期バージョンを同一のバケットにコピーする コピーしたオブジェクトはそのオブジェクトの現在のバージョンとなり、なおかつオブジェクトのすべてのバージョンが維持されます。
2. オブジェクトの現在のバージョンを永久に削除する オブジェクトの現在のバージョンを削除すると、実際には1つ前のバージョンがオブジェクトの現在のバージョンに置き換わります。

バージョン管理が一時停止状態にあるオブジェクトの管理

バージョン管理を一時停止した場合、バケット内の既存のオブジェクトは変更されません。変更されるのはCOSがそれ以降のリクエストにおいてオブジェクトを処理する方式です。バージョン管理を一時停止しているバケット内でオブジェクトがどのように管理されるかについて、次にご説明します。

オブジェクトのアップロード

バケット上でバージョン管理を一時停止すると、ユーザーがPUT、POSTまたはCOPY操作を実行した際、COSはこのバケット内に保存されるオブジェクトに、バージョンIDをnullとして自動的に追加します。下図に示します。

バケット内にバージョン管理を行っているオブジェクトが存在する場合、バケットにアップロードされたオブジェクトが現在のバージョンとなり、バージョンIDはnullとなります。下図に示します。

バケット内に空のバージョンがすでに存在する場合、この空のバージョンは上書きされ、それまでのオブジェクトの内容もそれに応じて置き換えられます。下図に示します。


データのメタバージョンの照会

バージョン管理を一時停止したバケットで、ユーザーがGET Objectリクエストを送信すると、オブジェクトの現在のバージョンが返されます。

オブジェクトの削除

バージョン管理を一時停止した状態でDELETEリクエストを実行すると、次のようになります。
バケット内に空のバージョンのオブジェクトが存在する場合は、バージョンIDがnullのオブジェクトを削除します。 下図のように、ユーザーが通常のDELETE操作を実行した際、COSは空のバージョンのオブジェクトに削除タグを挿入します。

注意:
削除タグには内容が存在しません。削除タグが空のバージョンに置き換わった時点で、空のバージョンの元の内容は失われます。
バケット内に空のバージョンのオブジェクトが存在しない場合は、バケット内に新たに削除タグが追加されます。 下図のように、バケットに空のバージョンが存在しない場合、ユーザーがDELETE操作を実行してもいかなる内容も削除されず、COSが削除タグを挿入するだけとなります。

バージョン管理を一時停止しているバケットであっても、ルートアカウントであれば指定したバージョンを永久に削除することができます。 下図のように、指定したオブジェクトのバージョンを削除すると、そのオブジェクトは永久に削除されます。

注意:
指定したオブジェクトのバージョンを削除できるのは、ルートアカウントまたはルートアカウントから権限を付与されたアカウントのみです。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック