The project I have been working on will be living in the so called cloud. Eventually it will be hosted within Amazon EC2 but I am not quite at that point yet.

I have been using Amazon S3 and SQS however. I am developing in c# so went looking for some libraries that would make things easier. I am not so keen on working with SOAP or dealing with http calls, especially if someone else has already done the heavy lifting!

For S3 there is ThreeSharp it has a very nice API and thankfully uses an interface that can be mocked. One of the nice things about it is that you don’t have to provide an actual file to upload to S3, you can just provide data that can be loaded into the stream. This makes it really easy in tests to load it up your bucket with data. I now have a nice suite of end to end tests that work directly with S3.

The next library I found was Amazon.SQS as with ThreeSharp it has an interface that can be mocked. The API is fairly straightforward, the only thing I had trouble with was figuring out how the Queue Url worked. When you create the queue the url is returned in the response object and from then on you need to pass that url around when you make requests.

I was expecting it to be easy to work with these services and so far I have not been disapointed.