Advertisement

Snow Leopard Services in practice: Amazon S3 uploader

I stumbled upon a great example of the Snow Leopard Services that I've been drooling over. The S3 Upload Service by August Lilleaas is available as a workflow which can be opened in Automator, so you can examine its inner workings. It uses AppleScript and Ruby, easily passed back and forth thanks to Automator's building-block-style workflow. It lets you upload a publicly-accessible file to an S3 bucket, and copies the URL into your clipboard upon successful upload.

The workflow requires that you at least have RubyGems installed, and have an Amazon S3 account set up, but it will handle the rest. It asks for your S3 credentials with an AppleScript popup, which has the unfortunate side effect of not being able to be forced to the front very easily and tends to get lost behind other windows. There are workarounds to that, but no way to keep it on top once it's up. It looks possible to build custom nibs for your services, so I might play around with making a general-purpose utility panel popup to fill the void in my own projects.

In the process of rolling my own Services in Snow Leopard, I've definitely found some limitations, but I'm having fun working around them. This one is a great example of passing results -- returned from different languages -- and processing them, all within Automator. It's not super-polished -- your mileage may vary -- but a big thanks to August for putting it out there for the rest of us to play with!