Dynamic screencap sharing with Amazon S3 and Captured

Recently, I've been wanting a way to share screencaps and other images on my desktop with friends via IM, email and social media. However, I wanted something that runs quietly in the background and doesn't have an obtrusive menu system or a bunch of preference settings I'll never use. It needed to be lightweight, yet powerful enough to upload my images to a repository on my S3 account and allow me to use my own URL when generating the link.

Enter Captured.

Written exclusively for OS X, Captured is exactly what I was looking for. A friend told me about it and I decided to try it out. I was able to set up exactly what I wanted in ~5 minutes. Here's how I was able to do it.

The first thing to do is download Captured from the Mac App Store. It's $2.99, if you have most/all of the needs mentioned above, you'll find the price to be well worth it. The app is only 1.8 MB so it installs quickly and it's rated a solid 4 stars. Once that's done you can follow the next steps to link it to use it with your own S3 account.

Preparing your Amazon S3 account

To start this process, you'll first want to log into your S3 account. Then create a bucket with the hostname you want to use. In my case, I named it i.classicyuppie.com, but yours could be anything you choose as long as it contains your domain name. (images.example.com). After you create the bucket, you'll need to display the properties. Click the website tab and you'll see the following screen:

Screen Shot 2012 12 07 at 12 39 38 PM

Take the endpoint URL and write it down. You'll need it to build the CNAME record with your domain registrar. Don't forget to click Save! (P.S., you'll need to put something in the Index document field. I put index.html to fill the void. Then it let me save the configuration.)

In my case, I wanted to use something short, so I went with i.classicyuppie.com. When you build the CNAME record, you'll want to use the Amazon S3 bucket's endpoint as the target data for the record. that way, you'll have your domain (ex., images.example.com) pointing to your endpoint. In some cases, you'll need to wait up to 72 hours for propagation to take place. When it's done, you can move on to testing the record.

Completing and testing your configuration

Now we're back to finishing the configuration in the Captured app. On the preferences screen, click the Advanced tab and choose Amazon S3 as the Server Type. You'll need to enter your access key, secret key and bucket name. Where this gets fun is entering in your public URL. This is the CNAME record you created (images.example.com). Enter this here with the http:// in the beginning. I also would suggest you choose the option of using reduced redundancy storage for this bucket. Since screen caps aren't usually mission-critical data, why not save a few cents and opt to use this? You get more on S3's reduced redundancy storage here.

Once this information is entered in, click the Test Connection button to ensure your settings are correct. If all goes well, you'll see a success message.

Screen Shot 2012 12 07 at 2 52 57 PM

Set a lifecycle for your data

As I said before, most people don't consider casual screencaps mission-critical data. To help this bucket from becoming a vast wasteland of once-and-done screen shots, you can use bucket lifecycle rules to specify just how long your images should stick around. If you want to keep them around for some purpose, but you don't want to have them in this bucket, you can even specify a rule to move the files to your Amazon Glacier (backup) account for private retrieval.

Screen Shot 2012 12 07 at 3 00 51 PM