Versioning is a means of keeping multiple variants of an object in the same bucket. It is used to preserve, retrieve, and restore every version of every object stored in your Amazon S3 bucket.
Creating S3 bucket and uploading object into the object. To revise click here.
Uploading object to S3 bucket
1 ) Click the bucket name and then get inside it. To add objects in S3, click Upload objects.
2 ) For example: add a text file and move to next step.
To upload a file larger than 160 GB, use the AWS CLI, AWS SDK, or Amazon S3 REST API.
3 ) You can set permissions of User or access for other AWS account.
4 ) Set properties : you can select storage class, enable encryption, add tags and values for metadata.
For now leave it as default and move to next step.
5 ) Review the file to be uploaded and then click upload.
Viewing the object
Select the file it shows the overview and properties. In the overview section, object url is mentioned, click to see the object.
You get an error while viewing the object, because it has not been made public.
Select the object, click Actions, Click make Public and then try to view it again.
This time file can be viewed.
Upload the same text file after editing it.
The file has been uploaded, it shows success. The previous file has been replaced by the new file.
But you won’t be able to view the file as it has not been made public.
Select the file, click Actions, and click make public.
View the file, the version has changed from 1 to 2.
Click properties, click enable versioning and save.
Again edit the file and make it version 2 to version 3. Then upload the file, you can see it shows success.
Select show in versions.
Both the versions can be viewed. It do not replaces the previous file, either keeps on adding new versions.
To view the file, select Actions and click make public.
Click object Url to view the image, now the version has changed from 2 to 3.
Things to remember :
Versioning is a great backup tool.
Once Versioning is enabled it cannot be disabled but it can be suspended.
The latest version will always have sum of size of all versions. So basically it increases the size of S3.
Tiering can be done on both object and bucket level.