Yesterday Rackspace announced that it had acquired Slicehost (one of the best VPS hosting services) and Jungle Disk (a backup service that stores files on Amazon S3. But that's not all, it looks like they want to be the cloud provider of choice and have also launched Rackspace Cloud services, including Cloud Files: "Scalable, dynamic storage. Use as much or little as you want and only pay for what you use". Rackspace have been hinting that they were working on this for a while, see How to Build a Storage System including the hint that this would be a good use for their older servers (looks like CloudFS has turned into Cloud Files).
Now as the author of Net::Amazon::S3 I was overjoyed. I'm in the middle of rewriting that module to make it more flexible and take full advantage of the S3 service. But there's no point having backup in the cloud if there is only one place to back up, so I bought some chocolate and some Coke, hacked for an hour and released Net::Mosso::CloudFiles last night.
The Cloud Files API is clearly based on the same ideas as the S3 API, but it's slightly simpler: it is a clean REST design with plain text responses (instead of XML) and good use of HTTP response codes. The main difference I've found so far is that one of the great features of Amazon S3 is that listing a bucket (container) also gives you the ETags of the files. It looks like in CloudFiles you have to do a HEAD request on each file to get the same functionality at the moment. Otherwise, looks nice.