Experiments in Small Business - Hosting Gigapixel Content

You may have seen previous posts about hosting complex flash with Squarespace. I have had a couple of requests for more specifics about how to setup Amazon web services to host gigapixel panoramic content, so here's a guide:

Signing Up for AWS

When I signed up for SquareSpace hosting, I was hopeful, but pessimistic that their "unlimited" option was truly unlimited. After further investigation I found the limits I was expecting, both in file size, and in bulk uploading restrictions. I'm guilty of not looking extensively at static content options, but AWS had more free space than Google at the time, and the price when I reach limits is very reasonable. Amazon S3 services provide cost effective hosting of static content. You can find out more about their free tier at http://aws.amazon.com/free . There are also links to sign up for the service on that page. You will have to provide credit card information, but the offering includes 5GB of storage with monthly limits on "Puts" and "Gets" that you will likely not hit unless you have content go viral. I'm currently looking into how to set up AdSense from Google so that I can be prepared to offset the hosting costs of a viral event, but the only charge I've incurred so far was when uploading initial content. I uploaded over 100,000 files against an allowance of 20,000 "puts" and my charge that month was $1.08. 

Configure a S3 Container

After you sign up for AWS, you will need to log into the AWS Administrative Console using the link in the email confirming your account. Bookmark this url, you'll want to check in regularly. The first thing you will want to do is create a "Bucket" for your content, keep the name short. After creating the bucket, click on the properties button and expand the "Static Website Hosting" section of the properties window. Click on "Enable Website Hosting" and make note of your endpoint url, you'll need it later. It will look something like yourdomain.s3-website-LOCATION.amazonws.com

Uploading Content

You can upload content using the AWS portal by clicking on the "Transfer" button. Their web dialog is easy to use, and I uploaded my first panoramic with it. But it's limited in how well it can leverage your internet connection, and does not offer a "synchronize" option that is critical to keeping a 20,000 file pano-tour up-to-date without having to re-upload all files. To handle these requirements you will need the amazon command line tools. If you're familiar with command line tools like FTP or CP, this one is pretty easy. You'll have to go through a configuration step to provide you account and endpoint information. Once configured, uploading all the files that have changed on my local system is as easy as typing a simple command and my upload speeds were 5 to 10 times faster than the web interface.

Embedding Content

I've discussed this before, but now that your content is hosted you can embed it using iFrames in almost any web site. Here is the iFrame I use to embed a pano-tour on my home page. 

<iframe seamless allowFullScreen src="https://s3.amazonaws.com/immersive.ssgpp.com/Asheville/asheville.html" style="position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0;">
  Your browser doesn't support IFrames

For more information on iFrames and the attributes to control size, borders, etc. you can look here http://www.w3schools.com/tags/tag_iframe.asp

If you found this post helpful and want to say thank you - I'd appreciate a like/follow on my Facebook page