S3 browser is a Mac OS X administration tool for the Amazon S3 data storage service. My goal is to build a small application useful in itself for developers or users subscribed to the S3 service, but also to provide example code showing how to access S3 through the REST API in a OS X Objective-C client application, on top of OS X technologies (Keychain, URL loading system, ...).
Basic S3 operations are implemented (bucket list/create/delete), objects deletion, upload and download (using streaming network code to be able to deal with large files). There is also a small low-level request inspector and a task console.
To use this application, you will need a Amazon WebServices account.
I occasionally post notes about S3 Browser development on my log.
Latest versionsSince v1.0, S3 Browser has support for multiple files upload. When uploading a directory, the contained files will be mapped to a slash-separated key to retain the hierarchy. Another important change in file upload is support for content-type, using by default the mime-type provided by Mac OS X for a given file. Both key and content-type can be changed from the default values when uploading.
The backend code has also been revamped to properly batch multiple parallel requests to the service, streamed transfer can be also inspected like the non-streaming variety. Large buckets are also supported (by sending successive lists queries to build the object list), and there's also a lot of small UI and back-end fixes. And a preference panel.
In v1.0.2, support was added for auto-updates through an appcast feed, thanks to Sparkle framework by Andy Matuschak. When launching 1.0.2,
the application should propose an update.
Download and conditions
I'm releasing this under a BSD license, so you can basically use the source code at will - of course, don't hesitate to send patches if you make fixes or additions, no obligations though. If you're building something using this code, a simple note of thanks in an about box or web page would be nice. Let me know if you want that I add a link to you here.
And if you think it made you save time and money, or just find this useful, feel free to use the PayPal button!
The UI code is very Cocoa bindings oriented. The backend code uses the Foundation URL loading system, and the whole thing tries to be as asynchronous as possible. I hope it could be a starting point for S3 support in OS X desktop apps (or other REST APIs).To-do
- URL generation tool
- Correctness review
- AppleScript support ?
- Hierarchical views ?