Deleting Object Versions
You can delete object versions whenever you want. In addition, you can also define lifecycle configuration rules for objects that have a well-defined lifecycle to request Amazon S3 to expire current object versions or permanently remove noncurrent object versions. When your bucket is version-enabled or versioning is suspended, the lifecycle configuration actions work as follows:
Expirationaction applies to the current object version and instead of deleting the current object version, Amazon S3 retains the current version as a noncurrent version by adding a delete marker, which then becomes the current version.
NoncurrentVersionExpirationaction applies to noncurrent object versions, and Amazon S3 permanently removes these object versions. You cannot recover permanently removed objects.
For more information, see Object Lifecycle Management.
DELETE request has the following use cases:
When versioning is enabled, a simple
DELETEcannot permanently delete an object.
Instead, Amazon S3 inserts a delete marker in the bucket, and that marker becomes the current version of the object with a new ID. When you try to
GETan object whose current version is a delete marker, Amazon S3 behaves as though the object has been deleted (even though it has not been erased) and returns a 404 error.
The following figure shows that a simple
DELETEdoes not actually remove the specified object. Instead, Amazon S3 inserts a delete marker.
To permanently delete versioned objects, you must use
DELETE Object versionId.
The following figure shows that deleting a specified object version permanently removes that object.
Using the Console
For instructions see, Deleting an Object in the Amazon Simple Storage Service Console User Guide. You will need to click the Show button in the console to list all object versions.
Using the AWS SDKs
For examples of uploading objects using the AWS SDKs for Java, .NET, and PHP, see Deleting Objects. The examples for uploading objects in nonversioned and versioning-enabled buckets are the same, although in the case of versioning-enabled buckets, Amazon S3 assigns a version number. Otherwise, the version number is null.
For information about using other AWS SDKs, see Sample Code and Libraries.
To a delete a specific version of an object
DELETE, specify a version ID.
Example Deleting a Specific Version
The following example shows how to delete version UIORUnfnd89493jJFJ of
Copy to clipboard
DELETE /photo.gif?versionId=UIORUnfnd89493jJFJ HTTP/1.1 Host: bucket.s3.amazonaws.com Date: Wed, 12 Oct 2009 17:50:00 GMT Authorization: AWS AKIAIOSFODNN7EXAMPLE:xQE0diMbLRepdf3YB+FIEXAMPLE= Content-Type: text/plain Content-Length: 0