Welcome!

You will be redirected in 30 seconds or close now.

ColdFusion Authors: Yakov Fain, Jeremy Geelan, Maureen O'Gara, Nancy Y. Nee, Tad Anderson

Related Topics: ColdFusion

ColdFusion: Article

Rock Solid Storage via Web Services

Storage and bandwidth: the two hardest things to scale up as an application grows

Storage and bandwidth - these have traditionally been the two hardest things to scale up as an application grows. Many a dot-com million has been spent building out rock solid storage infrastructures, sometimes for applications which never saw the light of day. Fast forward to 2006. These are good times for developers, with open source technologies, open APIs, and low-cost, commoditized services to help the little guys play along with the big boys.

If you've struggled with adding storage to your application, Amazon's new Simple Storage Service may be just what you're looking for. Amazon S3, as it is commonly known, provides developers with access to the same rock solid, enterprise-class storage that Amazon uses for its own network of sites - all at a low cost with no minimum usage amounts.

Amazon has always tried to define itself as being more than just a bookstore. It was one of the first companies to embrace web services and to create a community around these developers. The launch of S3 has taken this even further. It's now possible to launch your app without worrying about what happens when you wind up with the next big Web 2.0 phenomenon.

Some of the features of S3 are:

  • It allows you to read, write and delete an unlimited number of objects from 1 byte to 5gb each
  • You pay only for what you use - $0.15 per GB-Month of storage and $0.20 per GB of data transferred
  • It uses standards-based REST (Representational State Transfer) and SOAP interfaces
  • Objects can be made public or private, and links can be set to expire
  • It is scalable, reliable and fast
The S3 web services are made available as either SOAP or REST-based web services. SOAP was the first web services technology to gain acceptance, but REST has quickly caught up due to the simple interface it provides using standard HTTP requests. REST does not suffer from the additional messaging layer and overhead that SOAP needs, and it is generally more lightweight and easier to work with. We're going to use the REST interface for all of our methods, using the CFHTTP tag and subsequently parsing the XML that is returned.

The following operations make up the core of the S3 service:

  • List all buckets for user
  • Put a new bucket
  • Get contents of a bucket
  • Delete a bucket
  • Put a new object
  • Get an object
  • Delete an object
Some of the things to keep in mind about working with the S3 service:
  • Accounts are limited to 100 buckets each and bucket names must be unique across all users
  • Buckets cannot contain other buckets, only objects
  • The number of objects within a bucket is unlimited
Detailing each method is outside the scope of this article, but we'll look at a sample REST request to give you an idea of how things work. You should be able to take it from there.

One of the keys to interacting with the S3 service is the signature that is required to be sent with each request. This is created by using a hash of your Amazon secret access key combined with the HTTP request string for the action being performed. To create the necessary signature, you'll need the <CF_HMAC> custom tag created by Tim McCarthy, which can be downloaded from the Adobe Developer Exchange at http://tinyurl.com/jhn9b.

The code to create a new bucket can be found in Listing 1.

CF7 includes all the other tags you'll need, but, on CF6, a Hex2Bin function is necessary which you can find at http://tinyurl.com/knx22. With CF6, you should change line 17 to read:

<cfset signature = ToBase64(Hex2Bin("#digest#"))>

The signature gets created on line 14, which generates a hash of the canonical string being sent to the web server using the secretAccessKey provided by Amazon as the encryption key. Once the signature is created, we submit the REST request via <cfhttp> on lines 20-24, and pass the appropriate <cfhttpparam> fields into the header of the request. The results are returned as standard XML. The main difference between the various S3 methods lies in the canonical string that gets sent along with the header variables passed in. Amazon provides raw HTTP samples in their Developer Resources which can help with forming the necessary HTTP requests. The raw HTTP request for putting a bucket is found in Listing 2.

Rather than have everyone reinvent the wheel, I created a CFC wrapper to the S3 service which handles all of the basics of adding and deleting buckets and objects. You can download the S3 CFC, which contains a sample application for interacting with the service, from the projects page on my blog at www.ajaxcf.com.

Keep in mind that this is a new service just launched by Amazon in March 2006. It is still evolving and more functionality will be added in the future. To find out more about Amazon S3 and to create a web services account to get started, visit the S3 homepage at http://aws.amazon.com/s3/. There are some alternatives on the horizon from OmniDrive, Streamload, and Box.net, which may suit your needs as well.

More Stories By Joe Danziger

Joe Danziger is a senior web applications developer with Multimax, Inc., a provider of Enterprise IT Services and Solutions supporting the critical missions of the Air Force, Army, Navy, and other Department of Defense components. He is certified as an Advanced Macromedia ColdFusion MX Developer, and also maintains the Building Blocks site (www.ajaxcf.com) dedicated to AJAX and ColdFusion, as well as DJ Central (www.djcentral.com), a Website serving DJs and the electronic dance music industry.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Yaniv Golan 11/08/06 03:26:13 AM EST

> The launch of S3 has taken this even
> further.

Daniel Cohen of the Gemini Israel Funds noted that he would not invest in any company that bases its strategy on the Amazon S3 storage services, since in his opinion it takes the economics away. This is interesting, it goes against my instinct and what I would recommend to people debating this decision. I'd love to see his math.

@ThingsExpo Stories
Announcing Poland #DigitalTransformation Pavilion
Digital Transformation is much more than a buzzword. The radical shift to digital mechanisms for almost every process is evident across all industries and verticals. This is often especially true in financial services, where the legacy environment is many times unable to keep up with the rapidly shifting demands of the consumer. The constant pressure to provide complete, omnichannel delivery of customer-facing solutions to meet both regulatory and customer demands is putting enormous pressure on...
DXWorldEXPO LLC announced today that All in Mobile, a mobile app development company from Poland, will exhibit at the 22nd International CloudEXPO | DXWorldEXPO. All In Mobile is a mobile app development company from Poland. Since 2014, they maintain passion for developing mobile applications for enterprises and startups worldwide.
CloudEXPO | DXWorldEXPO are the world's most influential, independent events where Cloud Computing was coined and where technology buyers and vendors meet to experience and discuss the big picture of Digital Transformation and all of the strategies, tactics, and tools they need to realize their goals. Sponsors of DXWorldEXPO | CloudEXPO benefit from unmatched branding, profile building and lead generation opportunities.
The best way to leverage your CloudEXPO | DXWorldEXPO presence as a sponsor and exhibitor is to plan your news announcements around our events. The press covering CloudEXPO | DXWorldEXPO will have access to these releases and will amplify your news announcements. More than two dozen Cloud companies either set deals at our shows or have announced their mergers and acquisitions at CloudEXPO. Product announcements during our show provide your company with the most reach through our targeted audienc...
@DevOpsSummit at Cloud Expo, taking place November 12-13 in New York City, NY, is co-located with 22nd international CloudEXPO | first international DXWorldEXPO and will feature technical sessions from a rock star conference faculty and the leading industry players in the world.
Everything run by electricity will eventually be connected to the Internet. Get ahead of the Internet of Things revolution. In his session at @ThingsExpo, Akvelon expert and IoT industry leader Sergey Grebnov provided an educational dive into the world of managing your home, workplace and all the devices they contain with the power of machine-based AI and intelligent Bot services for a completely streamlined experience.
DXWorldEXPO | CloudEXPO are the world's most influential, independent events where Cloud Computing was coined and where technology buyers and vendors meet to experience and discuss the big picture of Digital Transformation and all of the strategies, tactics, and tools they need to realize their goals. Sponsors of DXWorldEXPO | CloudEXPO benefit from unmatched branding, profile building and lead generation opportunities.
22nd International Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, NY, and co-located with the 1st DXWorld Expo will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud ...
In his keynote at 19th Cloud Expo, Sheng Liang, co-founder and CEO of Rancher Labs, discussed the technological advances and new business opportunities created by the rapid adoption of containers. With the success of Amazon Web Services (AWS) and various open source technologies used to build private clouds, cloud computing has become an essential component of IT strategy. However, users continue to face challenges in implementing clouds, as older technologies evolve and newer ones like Docker c...
"MobiDev is a software development company and we do complex, custom software development for everybody from entrepreneurs to large enterprises," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
JETRO showcased Japan Digital Transformation Pavilion at SYS-CON's 21st International Cloud Expo® at the Santa Clara Convention Center in Santa Clara, CA. The Japan External Trade Organization (JETRO) is a non-profit organization that provides business support services to companies expanding to Japan. With the support of JETRO's dedicated staff, clients can incorporate their business; receive visa, immigration, and HR support; find dedicated office space; identify local government subsidies; get...
Dion Hinchcliffe is an internationally recognized digital expert, bestselling book author, frequent keynote speaker, analyst, futurist, and transformation expert based in Washington, DC. He is currently Chief Strategy Officer at the industry-leading digital strategy and online community solutions firm, 7Summits.
Bill Schmarzo, author of "Big Data: Understanding How Data Powers Big Business" and "Big Data MBA: Driving Business Strategies with Data Science," is responsible for setting the strategy and defining the Big Data service offerings and capabilities for EMC Global Services Big Data Practice. As the CTO for the Big Data Practice, he is responsible for working with organizations to help them identify where and how to start their big data journeys. He's written several white papers, is an avid blogge...
In past @ThingsExpo presentations, Joseph di Paolantonio has explored how various Internet of Things (IoT) and data management and analytics (DMA) solution spaces will come together as sensor analytics ecosystems. This year, in his session at @ThingsExpo, Joseph di Paolantonio from DataArchon, added the numerous Transportation areas, from autonomous vehicles to “Uber for containers.” While IoT data in any one area of Transportation will have a huge impact in that area, combining sensor analytic...
Bill Schmarzo, author of "Big Data: Understanding How Data Powers Big Business" and "Big Data MBA: Driving Business Strategies with Data Science," is responsible for setting the strategy and defining the Big Data service offerings and capabilities for EMC Global Services Big Data Practice. As the CTO for the Big Data Practice, he is responsible for working with organizations to help them identify where and how to start their big data journeys. He's written several white papers, is an avid blogge...
Charles Araujo is an industry analyst, internationally recognized authority on the Digital Enterprise and author of The Quantum Age of IT: Why Everything You Know About IT is About to Change. As Principal Analyst with Intellyx, he writes, speaks and advises organizations on how to navigate through this time of disruption. He is also the founder of The Institute for Digital Transformation and a sought after keynote speaker. He has been a regular contributor to both InformationWeek and CIO Insight...
Michael Maximilien, better known as max or Dr. Max, is a computer scientist with IBM. At IBM Research Triangle Park, he was a principal engineer for the worldwide industry point-of-sale standard: JavaPOS. At IBM Research, some highlights include pioneering research on semantic Web services, mashups, and cloud computing, and platform-as-a-service. He joined the IBM Cloud Labs in 2014 and works closely with Pivotal Inc., to help make the Cloud Found the best PaaS.
It is of utmost importance for the future success of WebRTC to ensure that interoperability is operational between web browsers and any WebRTC-compliant client. To be guaranteed as operational and effective, interoperability must be tested extensively by establishing WebRTC data and media connections between different web browsers running on different devices and operating systems. In his session at WebRTC Summit at @ThingsExpo, Dr. Alex Gouaillard, CEO and Founder of CoSMo Software, presented ...
I think DevOps is now a rambunctious teenager - it's starting to get a mind of its own, wanting to get its own things but it still needs some adult supervision," explained Thomas Hooker, VP of marketing at CollabNet, in this SYS-CON.tv interview at DevOps Summit at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.