A significant new beta feature has been added to Amazon S3, which allows you to version the files which you store with the service. With versioning, you can maintaing a history of every file you upload to store at S3.
Amazon S3 (Simple Storage Service) is a cloud storage service, which allows one to store large volumes of data online, and charges for their services based on the exact resources you use instead of charging based on blocks of usage ranges. So you have to pay for your data based on how much you store, download, upload, and the number of requests for the same.
Unlike cloud storage services such as Dropbox, Windows Live SkyDrive, and now Google Docs, Amazon S3 is not a service you can use straight away, with a simple application from Amazon. There is no web panel for uploading files through a browser either. Instead it provides an API for developers to access objects stored using the service. Dropbox itself uses Amazon S3 for storage. Many 3rd party applications are available which allow you to use Amazon S3 for backup, and some can even mount it so you can use it just like any physical drive.
In S3, your data is stored in “buckets” which are like top-level folders for storing your content. Files stored in S3 are not stored using folder and file system, but a system in which each stored object / file is given unique name or key. A folder / file hierarchy can be simulated by giving a file a name such as “pictures/jan2009/image1.jpg” (which is the name of the file in its entirety).
So what does the introduction of Versioning mean for this service?
Versioning can be enabled on a per-bucket basis, and if it is enabled for a particular bucket, then any operation which modifies a file will retain the old copy as well. This means that your data is secure from accidental deletions or modifications.
An application which is aware of the versioning scheme in Amazon S3 can access older versions as well, and can restore any older version if so desired. Old applications will continue to work as before, and will only be aware of the latest version and status of each object. This way existing applications can continue to run, while new applications can give users another dimension of access.
Unfortunately, and understandably every time you upload a modified version of any of your files, a new copy will be created, using up more space and increasing your bill. This is no replacement for a system such as SVN, Mercurial or Git which are much more optimized for such purposes. Nevertheless, sine many kinds of formats (most binary formats) don’t get much benefit from storing on version control systems anyway, S3 can be a good bet.
This is certainly good news for Amazon S3 users, and is sure to make it more attractive to people considering other options such as Microsoft Windows Azure or Rackspace.