オブジェクト・バージョニング
オブジェクト・バージョニングは、偶発的または悪意のあるオブジェクトの更新、上書きまたは削除に対するデータ保護を提供します。
オブジェクト・バージョニングはバケット・レベルで有効化されます。 バージョニングは、次のいずれかのアクションが発生するたびにオブジェクト・バージョンを自動的に作成するようObject Storageに指示します:
-
新しいオブジェクトがアップロードされます。
-
既存のオブジェクトが上書きされます。
-
オブジェクトが削除されたとき。
オブジェクト・バージョニングは、バケット作成時以降で有効化できます。
バージョニング対応のバケットには、オブジェクトの多数のバージョンを含めることができます。 オブジェクトの最新バージョンは常に1つで、それ以前のバージョンは0つ以上あります。
オブジェクト・バージョン削除
バージョニングが有効になっているバケットからオブジェクトは、明示的なアクションを実行するまで物理的に削除されません。
特定のバージョンをターゲットとせずにオブジェクトを削除すると、最新のオブジェクト・バージョンが以前のオブジェクト・バージョンになり、削除ポイントをマークする特別な削除マーカーが作成されます。 削除マーカーには最小限のメタデータのみが含まれます。 フォルダを削除すると、フォルダ内のオブジェクトごとに削除マーカーが作成されます。 削除マーカーを削除して、削除したバージョンを最新のオブジェクト・バージョンにすることもできます。
削除マーカーと同じ名前のオブジェクトをアップロードすると、アップロードされたオブジェクトはオブジェクトの最新バージョンになります。 削除マーカーは残ります。 1つのオブジェクトに複数の削除マーカーがあり、以前のオブジェクト・バージョンのいずれかをリカバリできます。
オブジェクト・バージョンの削除が異なります。 オブジェクト・バージョンを削除すると、そのバージョンは完全に削除されます。 バージョンIDによって最新バージョンを明示的に削除した場合も、完全に削除されます。 特定のオブジェクト・バージョンIDをターゲットとするすべての削除操作では、データが完全に削除されます。
スコープと制約
-
バージョニングはオブジェクト・ストレージのバケット上で有効化できます。
-
オブジェクトの最新バージョンの名前は変更できますが、以前のオブジェクト・バージョンの名前は変更できません。 オブジェクトの名前を変更すると、新しいオブジェクトが作成されます。
バージョニングとその他のオブジェクト・ストレージ機能間の相互作用
この項では、オブジェクト・バージョニングと他のオブジェクト・ストレージ機能との相互作用について知っておく必要がある重要な事項について説明します。
オブジェクトのコピー
オブジェクトの最新バージョンを別のバケットにコピーすると、オブジェクトのみがコピーされます。 オブジェクトの以前のバージョンはコピーされません。 以前のバージョンのオブジェクトを別のバケットにコピーできますが、そのアクションでは、新しいオブジェクトの最新バージョンまたは宛先バケット内の新しいオブジェクト・バージョンのいずれかが作成されます。
保持ルール
-
バージョニングが有効になっているバケットには保持ルールを追加できません。
-
アクティブな保持ルールがあるバケットでバージョニングを有効にすることはできません。
-
バージョニングが一時停止されているバケットに保持ルールを追加できます。 ただし、アクティブな保持ルールでバージョニングを再開することはできません。
バージョニングのトラブルシューティング
バージョニングを有効化できません
バージョニングの有効化に失敗した場合、最も可能性の高い原因は、IAM権限が欠落しているか、不完全であることです。 バージョニングの有効化には次が必要です:
-
バケットを使用し、そのバケット内のオブジェクトを管理できるユーザー権限。
-
Minimally, BUCKET_UPDATE permissions.
バケットを削除できません
バケットの削除に失敗した場合、最も可能性の高い原因はバケットが空でないことです。
空のバケットを完全に削除できます。 次のいずれかを含むバケットは削除できません:
-
すべてのオブジェクト
-
オブジェクトの前のバージョン
-
マルチパート・アップロードが進行中です
-
事前認証済リクエスト
ヒント:
バージョン対応バケット内のオブジェクトを削除すると、そのオブジェクトの以前のバージョンが作成されます。 削除済オブジェクトの表示を選択して、バケットの削除を妨げる可能性のあるオブジェクト・バージョンを表示します。
前のバージョンを削除できません
以前のオブジェクト・バージョンの削除に失敗した場合、最も可能性の高い原因は、IAM権限が欠落しているか、不完全であることです。 オブジェクト・バージョンの削除には次が必要です:
-
バケットを使用し、そのバケット内のオブジェクトを管理できるユーザー権限。
-
Minimally, OBJECT_VERSION_DELETE permissions.