OK, so you know how to get data into AWS S3, what about getting it out? Previously, we uploaded entries from an imagined photo contest into a bucket. We sent a pair of files, a JSON file with the form data and the image. Let’s presume there’s a Rails app, it’s details don’t matter, but it has a model ContestEntry and we want to populate it from the S3 data. We’re going to write a script to do the import.

dd is the *NIX byte copying utility. It’s typically used for copying disks, creating disk images, or initializing disks from images. It can also be using to recover damaged files that can’t otherwise be copied. I mostly use it to make create bootable USB sticks for server installs. However, it’s also pretty opaque.

Previously, I covered uploading to S3 from a Rails app using a presigned-url. This works just fine, but means the data flows from the visitors computer to your server before heading to S3. I’ve previously showed how to upload the file directly to S3, which requires a world-writable bucket.

There’s also a hybrid solution that has the server generate a presigned-url which the browser then uses to go direct to S3, allowing the data to bypass the server. Let’s look at two ways to do this.

Previously, I worked through how to get messages from an IMAP server and work with the message headers. Let’s look at extracting data from those messages.

There’s a really solid, tried and true, Internet wide messaging queue. It’s been around for decades and has first class support in Ruby. What is it? Email. That’s right, email.