オブジェクトのバージョニングの管理
オブジェクト・バージョニングは、偶発的または悪意のあるオブジェクトの更新、上書きまたは削除に対するデータ保護を提供します。
オブジェクト・バージョニングはバケット・レベルで有効化されます。 バージョニングは、新しいオブジェクトのアップロード、既存のオブジェクトの上書き、またはオブジェクトの削除が行われるたびにオブジェクト・バージョンを自動的に作成するようObject Storageに指示します。 オブジェクト・バージョニングは、バケット作成時以降で有効化できます。 バージョニング対応のバケットには、オブジェクトの多数のバージョンを含めることができます。 オブジェクトの最新バージョンは常に1つで、それ以前のバージョンは0つ以上あります。
概念の詳細は、「Oracle Private Cloud Applianceコンセプト・ガイド」の「オブジェクト・ストレージの概要」の項を参照してください。
バケット作成時のバージョニングの有効化
オブジェクト・バージョニングは、偶発的または悪意のあるオブジェクトの更新と削除に対するデータ保護を提供します。
OCI CLIの使用
-
コマンドを実行するために必要な情報を収集します。
-
ネームスペース(「オブジェクト・ストレージ・ネームスペースの取得」を参照)
-
コンパートメントOCID (
oci iam compartment list -all
) -
バケット名: このバケットの名前。
-
-
構文(1行に入力):
oci os bucket create --namespace-name <object_storage_namespace> --compartment-id <target_compartment_id> --name <bucket_name> --versioning enabled
例:
oci os bucket create \ --namespace-name examplenamespace \ --compartment-id ocid.compartment.â¦.â¦.â¦.exampleuniqueID \ --name MyStandardBucket \ --versioning enabled { "data": { "approximate-count": null, "approximate-size": null, "compartment-id": "ocid1.compartment.â¦.â¦.â¦.uniqueID", "created-by": "ocid1.user.â¦.â¦.â¦.uniqueID", "defined-tags": null, "etag": "00b4edbb27012ae78a912428ad1e630c", "freeform-tags": null, "id": null, "is-read-only": null, "kms-key-id": null, "metadata": null, "name": "bucket-4-versioning", "namespace": "export/examplenamespace", "object-events-enabled": null, "object-lifecycle-policy-etag": null, "public-access-type": "NoPublicAccess", "replication-enabled": null, "storage-tier": "Standard", "time-created": "2021-06-10T18:39:12+00:00", "versioning": "Enabled" }, "etag": "00b4edbb27012ae78a912428ad1e630c" }
バージョニングの有効化または一時停止(バケット作成後)
オブジェクト・バージョニングは、偶発的または悪意のあるオブジェクトの更新と削除に対するデータ保護を提供します。
OCI CLIの使用
-
コマンドを実行するために必要な情報を収集します。
-
ネームスペース(「オブジェクト・ストレージ・ネームスペースの取得」を参照)
-
コンパートメントOCID (
oci iam compartment list -all
) -
バケット名(
oci os bucket list
)、「バケットのリスト」を参照
-
-
コマンドを実行します。
構文(1行に入力):
oci os bucket update --namespace-name <object_storage_namespace> --compartment-id <target_compartment_id> --bucket-name <bucket_name> --versioning <enabled | suspended>
--versioning
の場合は、いずれかのオプションを選択:enabled
またはsuspended
。オブジェクト・バージョニングの有効化例:
oci os bucket update \ --namespace-name examplenamespace \ --compartment-id ocid.compartment.â¦.â¦.â¦.uniqueID \ --bucket-name MyBucket \ --versioning Enabled { "data": { "approximate-count": null, "approximate-size": null, "compartment-id": "ocid1.compartment.â¦.â¦.â¦.uniqueID", "created-by": "ocid1.user.â¦.â¦.â¦.uniqueID", "defined-tags": null, "etag": "117f0608bdf83b9c7ea393db556a0ee4", "freeform-tags": null, "id": null, "is-read-only": null, "kms-key-id": null, "metadata": null, "name": "MyBucket", "namespace": "export/examplenamespace", "object-events-enabled": null, "object-lifecycle-policy-etag": null, "public-access-type": "ObjectRead", "replication-enabled": null, "storage-tier": "Standard", "time-created": "2021-06-02T17:06:18+00:00", "versioning": "Enabled" }, "etag": "117f0608bdf83b9c7ea393db556a0ee4" }
オブジェクト・バージョンおよび詳細の表示
OCI CLIの使用
-
コマンドを実行するために必要な情報を収集します。
-
ネームスペース(「オブジェクト・ストレージ・ネームスペースの取得」を参照)
-
コンパートメントOCID (
oci iam compartment list -all
) -
バケット名(
oci os bucket list
)、「バケットのリスト」を参照
-
-
コマンドを実行します。
構文(1行に入力):
oci os object list-object-versions --namespace-name <object_storage_namespace> --bucket-name <bucket_name>
例:
oci os object list-object-versions \ --namespace-name examplenamespace \ --bucket-name MyBucket { "data": [ { "etag": null, "is-delete-marker": false, "md5": "3DI5GbLmKiRxY/ozWxyXHQ==", "name": "bucket-data", "size": 103, "time-created": "2021-06-02T22:20:25+00:00", "time-modified": null, "version-id": null }, { "etag": null, "is-delete-marker": false, "md5": "VIic5JncRWwDQj6CnsZ1Ww==", "name": "compute.log", "size": 4878456, "time-created": "2021-06-10T19:03:26+00:00", "time-modified": null, "version-id": "5f4ce7e8-656f-409a-b70a-ebfedddcfeda" } ], "prefixes": [] }
オブジェクトの前のバージョンの削除
バージョニングが有効な場合、特定のバージョンをターゲットとせずにオブジェクトを削除すると、リカバリ可能なオブジェクトの削除マーカーおよび以前のバージョンが作成されます。 ただし、オブジェクトの以前のバージョンを削除することは永続的な削除です。
OCI CLIの使用
-
コマンドを実行するために必要な情報を収集します。
-
ネームスペース(「オブジェクト・ストレージ・ネームスペースの取得」を参照)
-
コンパートメントOCID (
oci iam compartment list -all
) -
バケット名(
oci os bucket list
)、「バケットのリスト」を参照 -
オブジェクト名 (
oci os object list
)、「バケット内のオブジェクトの表示」を参照
-
-
構文:
ノート:
オブジェクトの
version-id
がnull
の場合、オブジェクトのバージョンは1つのみです。 このオブジェクトを削除するには、--version-id
引数を省略します。oci os object delete --namespace-name <object_storage_namespace> --bucket-name <bucket_name> --version-id <bucket_version_id> --object-name <object_name>
例:
oci os object delete --namespace-name examplenamespace \ --bucket-name MyBucket \ --version-id 7f1f537d-ec9c-4706-867a-b1dae355c263 \ --object-name compute.log
削除されたオブジェクト・バージョンのリカバリ
削除されたオブジェクト・バージョンのリカバリは、オブジェクトの最新バージョンを削除したときに作成された削除マーカーを削除するのと同様に簡単です。 削除マーカーの直下にリストされているオブジェクトの前のバージョンが回復され、オブジェクトの最新バージョンになります。
OCI CLIの使用
-
バケット内のオブジェクトをリストします。 「オブジェクト・バージョンおよび詳細の表示」を参照してください。 出力で、
"is-delete-marker": true
を持つオブジェクト・バージョンを見つけます。削除マーカーを削除するには、deleteコマンドでそのオブジェクトのversion-idを使用します。
ノート:
オブジェクトの
version-id
がnull
の場合、オブジェクトのバージョンは1つのみです。 このオブジェクト・マーカーを削除するには、--version-id
引数を省略します。 -
コマンドを実行するために必要な情報を収集します。
-
ネームスペース(「オブジェクト・ストレージ・ネームスペースの取得」を参照)
-
コンパートメントOCID (
oci iam compartment list -all
) -
バケット名(
oci os bucket list
)、「バケットのリスト」を参照 -
オブジェクト名 (
oci os object list
)、「バケット内のオブジェクトの表示」を参照 -
バージョンID (前のステップを参照)
-
-
構文:
oci os object delete --namespace-name <object_storage_namespace> --bucket-name <bucket_name> --object-name <object_name> --version-id <bucket_version_id>
例:
oci os object delete --namespace-name examplenamespace \ --bucket-name MyBucket --object-name application.log --version-id 6ce3eb93-8850-4732-8949-cb6e67b722b0 Are you sure you want to delete this resource? [y/N]: y