Object Storage Service (OSS) では、バケットのバージョン管理を一時停止して、バケット内のオブジェクトに対して追加のバージョンが生成されないようにすることができます。 バケットのバージョン管理が一時停止されている場合、バケットにオブジェクトをアップロードし、バージョンIDを指定してバケット内のオブジェクトの以前のバージョンをダウンロードまたは削除できます。
オブジェクトのアップロード
バージョン管理が一時停止されたバケットにオブジェクトをアップロードすると、アップロードされたオブジェクトはIDがnullのバージョンとして保存されます。 バージョン管理が一時停止されたバケット内の各オブジェクトには、IDがnullのバージョンが1つだけあります。
- 次の図では、PutObject操作を使用してバージョン管理が一時停止されたバケットにオブジェクトをアップロードすると、アップロードされたオブジェクトがIDがnullのバージョンとして保存されます。
- 次の図では、バージョン管理が一時停止されたバケット内のexample.jpgという名前のオブジェクトのバージョンのIDは111111です。 PutObject操作を使用して既存のオブジェクトと同じ名前のオブジェクトをアップロードすると、アップロードされたオブジェクトはexample.jpgの現在のバージョンとして保存され、現在のバージョンにID nullが割り当てられます。 オブジェクトのバージョン111111は、以前のバージョンとして保存されます。
- 次の図では、バージョン管理が一時停止されたバケット内のexample.jpgという名前のオブジェクトのバージョンのIDはnullです。 PutObject操作を使用して同じ名前のオブジェクトをアップロードすると、IDがnullのバージョンが上書きされます。
ossutilが提供するcpコマンドと次のOSS SDKを使用して、バージョン管理が一時停止されたバケットにオブジェクトをアップロードできます。OSS SDK for Java、OSS SDK for PHP、OSS SDK for Node.js、OSS SDK for Python、OSS SDK for。NET、OSS SDK for Go、OSS SDK for C ++
オブジェクトのダウンロード
OSSでは、バージョン管理が中断されたバケットからオブジェクトの現在のバージョンまたは指定されたバージョンをダウンロードできます。
- デフォルトでは、リクエストにバージョンIDが指定されていない場合、オブジェクトの現在のバージョンが返されます。 次の図では、IDがnullのオブジェクトの現在のバージョンが返されます。
- GetObjectリクエストでバージョンIDを指定すると、指定されたバージョンのオブジェクトが返されます。 次の図では、IDが222222のバージョンが返されます。
ossutilが提供するcpコマンドと次のOSS SDKを使用して、バージョン管理が一時停止されたバケットからオブジェクトをダウンロードできます。OSS SDK for Java、OSS SDK for PHP、OSS SDK for Node.js、OSS SDK for Python、OSS SDK for。NET、OSS SDK for Go、OSS SDK for C ++
オブジェクトの削除
次の例では、さまざまなシナリオでバージョン管理が中断されたバケットからオブジェクトを削除する方法を説明します。
- DeleteObject操作を使用して現在のバージョンIDがnullでないオブジェクトを削除すると、OSSはIDがnullの削除マーカーをオブジェクトの現在のバージョンとして追加します。
- DeleteObject操作を使用して現在のバージョンIDがnullのオブジェクトを削除すると、OSSはIDがnullの削除マーカーをオブジェクトの現在のバージョンとして追加します。 オブジェクトは、IDがnullのバージョンを1つだけ持つことができます。 したがって、オブジェクトの元の現在のバージョンは、IDがnullである新しく追加された削除マーカーによって上書きされます。
- DeleteObjectリクエストでバージョンIDを指定すると、指定されたバージョンのオブジェクトが完全に削除されます。 次の図では、IDが333333のバージョンが削除されています。
ossutilが提供するrmコマンドと次のOSS SDKを使用して、バージョン管理が一時停止されたバケットからオブジェクトを削除できます。OSS SDK for Java、OSS SDK for PHP、OSS SDK for Node.js、OSS SDK for Python、OSS SDK for。NET、OSS SDK for Go、OSS SDK for C ++