Hi All, I implemented and published a Pharo client for Amazon's AWS S3 service called ZnAWSS3Client.
For some background, see http://en.wikipedia.org/wiki/Amazon_S3 or http://aws.amazon.com/s3. The code can be found in the package 'Zinc-AWS' in http://www.squeaksource.com/ZincHTTPComponents.html. It depends on both Zinc HTTP Components and XML Support (an excellent package BTW) as well as on the cryptography functionality in Pharo (md5, sha1 & hmac). Basically, Amazon S3 (Simple Storage Service) is an online storage web service where you store and retrieve objects under keys organized in groups called buckets. Objects can be any web resource identified by a mime type. The main advantage is that S3 is a highly scalable, reliable, secure, fast, inexpensive service. The client is currently a proof of concept implementing the basic S3 concepts. Here is some example usage: | client | (client := ZnAWSS3Client new) accessKeyId: '2ZGSSBGBHQGJ9VV5N441'; secretAccessKey: 'OtxrzxIsfpFjA7SwPzILwy8Bw21TLhquhboDYROV'; checkIntegrity: true. client buckets. client keysIn: 'my-bucket'. client keysIn: 'my-bucket' query: (Dictionary with: 'prefix'->'my-'). client at: 'my-bucket' -> 'my-key'. client at: 'my-bucket' -> 'my-key' put: (ZnEntity with: '0123456789'). client at: 'my-bucket' -> 'my-key' put: (ZnEntity with: 'Smalltalk rules S3!') headers: (Dictionary with: 'x-amz-acl'->'public-read'). Sven PS: the code does contain comments but you will need to read up on S3 first. To run anything you will have to create an AWS S3 account.
