<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheets/rss.css" type="text/css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Aaron Feng: Tag Amazon</title>
    <link>http://www.aaronfeng.com/articles/tag/amazon?tag=amazon</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Adventures in software development</description>
    <item>
      <title>Host your own Amazon S3</title>
      <description>&lt;p&gt;&lt;a href="http://code.whytheluckystiff.net/parkplace"&gt;Park Place&lt;/a&gt; is an &lt;a href="http://docs.amazonwebservices.com/AmazonS3/2006-03-01/"&gt;Amazon S3&lt;/a&gt; clone in Ruby minus the SOAP support.  It is amazing how little amount of code is required to achieve what &lt;a href="http://docs.amazonwebservices.com/AmazonS3/2006-03-01/"&gt;S3&lt;/a&gt; does.&lt;/p&gt;

&lt;p&gt;Another interesting aspect of &lt;a href="http://code.whytheluckystiff.net/parkplace"&gt;Park Place&lt;/a&gt; is that it uses &lt;a href="http://code.whytheluckystiff.net/camping/"&gt;Camping&lt;/a&gt; microframework.  &lt;a href="http://code.whytheluckystiff.net/camping/"&gt;Camping&lt;/a&gt; is similar to &lt;a href="http://www.rubyonrails.org/"&gt;Rails&lt;/a&gt; in the sense that it is a web framework that utilize the &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;MVC&lt;/a&gt; design pattern.  It is small web framework that weighs less than 4k!  It is described as "a little white blood cell in the vein of &lt;a href="http://www.rubyonrails.org/"&gt;Rails&lt;/a&gt;" on [Camping's][camp] wiki.   You can see all the code in the framework in one page of your browser.&lt;/p&gt;

&lt;p&gt;You can actually migrate from &lt;a href="http://code.whytheluckystiff.net/camping/"&gt;Camping&lt;/a&gt; to &lt;a href="http://www.rubyonrails.org/"&gt;Rails&lt;/a&gt; fairly easily.  That got me thinking, maybe [Shoechicken][shoechicken] should use &lt;a href="http://code.whytheluckystiff.net/camping/"&gt;Camping&lt;/a&gt; instead of &lt;a href="http://www.rubyonrails.org/"&gt;Rails&lt;/a&gt; to start with.  We can then migrate to &lt;a href="http://www.rubyonrails.org/"&gt;Rails&lt;/a&gt; as the need arises.&lt;/p&gt;</description>
      <pubDate>Thu, 08 Mar 2007 08:17:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:98b62579-955e-46e8-b7f3-d729200bf8ab</guid>
      <author>Aaron Feng</author>
      <link>http://www.aaronfeng.com/articles/2007/03/08/host-your-own-amazon-s3</link>
      <category>programming</category>
      <category>Amazon</category>
      <category>Park</category>
      <category>Place</category>
      <category>Camping</category>
      <category>Shoechicken</category>
    </item>
    <item>
      <title>Amazon S3</title>
      <description>&lt;p&gt;Since &lt;a href="http://shoechicken.com"&gt;Shoechicken&lt;/a&gt; will provide RESTful web services, it is only natural to check out some existing web services that are already in the wild.  One of the most well known web services that provides a REST API is the &lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;Amazon Simple Storage Service (Amazon S3)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;S3&lt;/a&gt; provides web services that allow a subscriber to store and retrieve data.  The subscriber is charged based on bandwidth and storage used.  It is especially important for Amazon to validate your identity so you do not get falsely charged from unauthorized requests.  Most important of all, you do not want your data to be compromised.  &lt;/p&gt;

&lt;p&gt;How does &lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;S3&lt;/a&gt; validate your identity?  When you sign up for &lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;S3&lt;/a&gt; you will receive two keys: Access Key ID and Secret Access Key ID.  Access Key ID is included in every request and before you put your request on the wire, you sign the header with your Secret Access Key ID.  Of course, no one knows your Secret Access Key besides you and Amazon.  This is fairly interesting because you can allow access to others by constructing the request for them.&lt;/p&gt;

&lt;p&gt;Maybe we can do something similar to &lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;S3&lt;/a&gt; in &lt;a href="http://shoechicken.com"&gt;Shoechicken&lt;/a&gt; when the user wants to retrieve recommendations for his or her feeds.&lt;/p&gt;

&lt;p&gt;For more information about &lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;S3&lt;/a&gt; please refer to the &lt;a href="http://docs.amazonwebservices.com/AmazonS3/2006-03-01/"&gt;official documentation&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Wed, 07 Mar 2007 21:23:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:60f3996c-e44c-4d13-9eda-697d87d4e021</guid>
      <author>Aaron Feng</author>
      <link>http://www.aaronfeng.com/articles/2007/03/07/amazon-s3</link>
      <category>REST</category>
      <category>REST</category>
      <category>Amazon</category>
      <category>Authentication</category>
    </item>
  </channel>
</rss>
