

# バージョニングが停止されたバケットのオブジェクトの操作
<a name="VersionSuspendedBehavior"></a>

Amazon S3 では、バケット内で同じオブジェクトの新しいバージョンが生成されないようにするには、バージョニングを停止します。この作業は、バケット内のオブジェクトのバージョンが 1 つだけ必要な場合に行います。あるいは、複数のバージョンで料金を発生させたくない場合などです。

バージョニングを停止しても、バケットに含まれる既存のオブジェクトは変更されません。変更されるのは、Amazon S3 が今後のリクエストでオブジェクトを処理する方法です。このセクションのトピックでは、バージョニングが停止されたバケットでの、オブジェクトの追加、取得、削除など、さまざまなオペレーションについて説明します。

S3 バージョニングの詳細については、[S3 バージョニングによる複数のバージョンのオブジェクトの保持](Versioning.md) を参照してください。オブジェクトバージョンの取得の詳細については、「[バージョニングが有効なバケットからのオブジェクトバージョンの取得](RetrievingObjectVersions.md)」を参照してください。

**Topics**
+ [バージョニングが停止されたバケットへのオブジェクトの追加](AddingObjectstoVersionSuspendedBuckets.md)
+ [バージョニングが停止されたバケットからのオブジェクトの取得](RetrievingObjectsfromVersioningSuspendedBuckets.md)
+ [バージョニングが停止されたバケットからのオブジェクトの削除](DeletingObjectsfromVersioningSuspendedBuckets.md)

# バージョニングが停止されたバケットへのオブジェクトの追加
<a name="AddingObjectstoVersionSuspendedBuckets"></a>

Amazon S3 でバージョニングが停止されたバケットにオブジェクトを追加すると、null バージョン ID の付いたオブジェクトが作成されるか、または同じバージョン ID のオブジェクトバージョンが上書きされます。

バケットでバージョニングを停止すると、Amazon S3 は (`PUT`、`POST`、`CopyObject` を使用して) その後そのバケットに保存された後続のすべてのオブジェクトに、`null` バージョン ID を自動的に追加します。

次の図は、バージョニングが停止されたバケットにオブジェクトが追加されたときに、Amazon S3 がそのオブジェクトにバージョン ID `null` を追加する方法を示しています。

![\[オブジェクトに null のバージョン ID を追加する Amazon S3 のグラフィック\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/versioning_PUT_versionSuspended.png)


バケット内に null バージョンが既に存在しており、同じキーを持つ別のオブジェクトを追加した場合、元の null バージョンは、追加したオブジェクトによって上書きされます。

バケット内にバージョニングされたオブジェクトがある場合、`PUT` したバージョンはオブジェクトの最新バージョンになります。次の図は、バージョニングされたオブジェクトを含むバケットにオブジェクトを追加しても、バケット内に既に存在するオブジェクトを上書きしないことを示しています。

この場合、バケット内にバージョン 111111 がすでに存在しています。Amazon S3 は、追加されるオブジェクトに null のバージョン ID をアタッチし、バケット内に保存します。バージョン 111111 は上書きされません。

![\[バージョン 111111 を上書きせずに null のバージョン ID をオブジェクトに追加する Amazon S3 のグラフィック\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/versioning_PUT_versionSuspended3.png)


次の図に示すように、バケット内に null バージョンが既に存在する場合、null バージョンは上書きされます。

![\[元のコンテンツを上書きして null のバージョン ID をオブジェクトに追加する Amazon S3 のグラフィック\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/versioning_PUT_versionSuspended4.png)


null バージョンのキーおよびバージョン ID ( `null` ) は `PUT` の前後で同じですが、バケット内に元々格納されていた null バージョンの内容は、バケット内のオブジェクト `PUT` の内容に置き換えられます。

# バージョニングが停止されたバケットからのオブジェクトの取得
<a name="RetrievingObjectsfromVersioningSuspendedBuckets"></a>

`GET Object` リクエストは、バケットでバージョニングを有効にしているかどうかにかかわらず、オブジェクトの最新バージョンを返します。次の図は、シンプルな `GET` がオブジェクトの最新バージョンを返す方法を示しています。

![\[シンプルな GET がオブジェクトの最新バージョンを返す方法を説明する図\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/versioning_GET_suspended.png)


# バージョニングが停止されたバケットからのオブジェクトの削除
<a name="DeletingObjectsfromVersioningSuspendedBuckets"></a>

バージョニングが停止されたバケットからオブジェクトを削除することで、null バージョン ID の付いたオブジェクトを削除します。

バケットのバージョニングが停止されている場合、`DELETE` リクエストは次のように動作します。
+ バージョン ID が `null` であるオブジェクトのみを削除できる。
+ バケット内にオブジェクトの null バージョンが存在しない場合は、何も削除しません。
+ バケットに削除マーカーを挿入する。

バケットバージョニングが停止されている場合、オペレーションは null `versionId` を持つオブジェクトを削除します。バージョン ID が存在する場合、Amazon S3 はオブジェクトの最新バージョンとなる削除マーカーを挿入します。次の図は、単純な `DELETE` が null バージョンを削除し、代わりに Amazon S3 がその位置に `null` のバージョン ID を持つ削除マーカーを挿入する方法を示しています。

![\[シンプルな delete が NULL バージョン ID でオブジェクトを削除する方法を説明する図\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/versioning_DELETE_versioningSuspended.png)


`versionId` を持つオブジェクトを完全に削除するには、オブジェクトの `versionId` をリクエストに含める必要があります。削除マーカーにはコンテンツが含まれていないため、削除マーカーが置き換えられると、`null` バージョンのコンテンツが失われます。

次の図は、null バージョンが存在しないバケットを示しています。この場合、`DELETE` は何も削除しません。代わりに、Amazon S3 は削除マーカーを挿入します。

![\[削除マーカーの挿入を示す図\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/versioning_DELETE_versioningSuspendedNoNull.png)


バージョニングが停止されたバケットでも、`DELETE` リクエストのアクセス許可が明示的に否定されていない限り、バケット所有者は `DELETE` リクエストにバージョン ID を含めることで、指定されたバージョンを完全に削除できます。例えば、`null` バージョン ID を持つオブジェクトの削除を拒否するには、`s3:DeleteObject` および `s3:DeleteObjectVersions` アクセス許可を明示的に拒否する必要があります。

次の図は、指定したオブジェクトバージョンを削除することによって、そのオブジェクトのバージョンを完全に削除する方法を示しています。バケット所有者のみが、指定したオブジェクトバージョンを削除することができます。

![\[指定したバージョン ID を使用した完全なオブジェクトの削除を説明する図\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/versioning_DELETE_versioningEnabled2.png)
