Storing and sending email attachments using Amazon S3
Amazon S3 provides on demand storage over a web service interface. The programmability provided by S3 allows for innovative usage of S3 for many different purposes. This tutorial walks through how you can use S3 to send large files directly from your email client and how to enable logging so that you can see which recipients have downloaded your file. This tutorial also walks through how you can store email attachments in S3, so that you do not have to clean up your Inbox all the time. The tutorial is based on the Outlook Attachment Manager software, which is totally free for the first month.
Life before S3
Before the advent of S3, if you want to send large files, you have to use a file transfer service such as FTP. You have to have access to an FTP server which you have to pay for regardless of whether you use it or not. For each transfer, you have to setup an account for your recipient, upload the file, send an email to your recipient with the login and password. You recipient has to login to the FTP site with the username and password, download the files, and correlate it to your email. That is a lot of work! S3's programmability, along with third party tools, can dramatically simplify the process, making email hassle free again.
If you use Microsoft Outlook, you can simply send large files directly from your email client. All you need to do is download an Outlook Add-in program, which automates the sending process. It is free for the first month. After download, install the add-in, then from the menu, click Tools->Options->Attachment Manager. Then select S3, input your S3 credential and bucket name, and select a caching directory as shown in the picture below.
Sending large files
To send large files, first create a new email message. In Outlook 2007, click the "Attach File Via Cloud" button in the "Insert" ribbon as shown in the picture below.
In Outlook 2003, create a new email message, on the menu, click "Insert" -> "File via Cloud".
On the pop up window (see below), choose the file to upload. Enable encryption and compression as necessary, and specify how long the link will be valid. The generated URL will expire after the specified number of days, after which time, no one can access your uploaded file again. Click "Attach" to start the upload process. While file is uploading, you can continue to compose your message.
After the file has been successfully uploaded to S3, a link is automatically inserted into the message. You can move the link to anywhere in the message. Note that the link generated is a private URL, no one else other than your recipients can see the file. If you have encryption enabled, you can add another layer of assurance that your data is secure.
To see who have accessed the file you sent, you can enable logging for the whole bucket. It will log accesses to all files in the bucket.
The S3 developer's guide has a section on how to enable bucket logging. It uses s3curl.pl and you have to type on command lines. Since you are using Outlook, we presume you are a Windows user. Here we will describe how you can enable logging from Windows.
First download SpaceBlock, an open source free software. Click "Download now", and unzip to a directory. In Windows explorer, click "unzipped directory/SpaceBlock 0.0.2/Binaries/CodePlex.SpaceBlock.UI.exe" to launch the application. Click "Add" to add from an S3 account, input your S3 credential, then right click on the bucket where you store attachments and select "Edit Server Access Logging..." You will see a screen similar to the one below. Input the target bucket name where the logging data will be delivered, and a prefix, which will be used as the prefix for all logging files delivered into that bucket.
Store attachments in the Cloud
Email attachments take the most space. It not only eat up your limited Inbox space, but it also makes your Outlook slow. Besides sending large attachments, the Outlook Attachment Manager can also store your attachments in the Cloud.
To detach/re-attach attachments, you can selected a set of emails, then click on the OutlookCloud toolbar as shown below. Alternatively, turn on "Auto detach on new email" in the options page to automatically detach on new emails.
The following picture shows the dramatic difference in space saved before and after detaching. After detaching, the attachment file has a S3 prefix to remind you that it is stored in S3. You can still click on the file as normal to view the attachment.
The bucket you used to store/send attachments is readable/writable by you only. Accessing the attachments is through SSL connection so that there can be no eavesdropping, and it is authenticated by your S3 credential. Accessing the large attachments you sent and the detached embedded images is through a private URL similar to:
The private URL contains the file name, the AWS access key (your account identifier), the expiration date for the link and the Signature, which is computed by your AWS secret key and it is used for authentication. Only people with the link can access your file. It is not possible to guess the URL otherwise.
S3 provides an innovative web services interface which allows full automation to simply your everyday task. It also provides building blocks such as ACL and private URL so that you can store your data securely in S3. Now you can send large email attachments and store attachments in S3, making it hassle free to use email again.