<?xml version="1.0"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>CKAN: Ticket #853: Understand how to upload to storage without having primary storage keys</title>
    <link>http://localhost/ticket/853</link>
    <description>&lt;p&gt;
Reverse engineer boto and work out how to get headers to support upload to google storage without holding api keys.
&lt;/p&gt;
&lt;p&gt;
This would lead to an extension to OFS.
&lt;/p&gt;
&lt;p&gt;
This analysis should inform (and go hand-in-hand) with the implementation of &lt;a class="closed ticket" href="http://localhost/ticket/879" title="enhancement: Storage auth API (closed: fixed)"&gt;ticket:879&lt;/a&gt; (Storage Auth API in CKAN).
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;master ticket &lt;a class="closed ticket" href="http://localhost/ticket/852" title="enhancement: [super] Dataset upload and archiving (closed: fixed)"&gt;#852&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;</description>
    <language>en-us</language>
    <image>
      <title>CKAN</title>
      <url>http://assets.okfn.org/p/ckan/img/ckan_logo_shortname.png</url>
      <link>http://localhost/ticket/853</link>
    </image>
    <generator>Trac 0.12.3</generator>
    <item>
      
        <dc:creator>wwaites</dc:creator>

      <pubDate>Tue, 07 Dec 2010 11:59:03 GMT</pubDate>
      <title>status, description changed; resolution set</title>
      <link>http://localhost/ticket/853#comment:1</link>
      <guid isPermaLink="false">http://localhost/ticket/853#comment:1</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;
                changed from &lt;em&gt;new&lt;/em&gt; to &lt;em&gt;closed&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;resolution&lt;/strong&gt;
                set to &lt;em&gt;fixed&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;description&lt;/strong&gt;
              modified (&lt;a href="/ticket/853?action=diff&amp;amp;version=1"&gt;diff&lt;/a&gt;)
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
done in &lt;a class="ext-link" href="http://bitbucket.org/ww/ofs"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://bitbucket.org/ww/ofs&lt;/a&gt; need to merge back into main ofs repo
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>pudo</dc:creator>

      <pubDate>Mon, 03 Jan 2011 09:39:10 GMT</pubDate>
      <title>status changed; resolution deleted</title>
      <link>http://localhost/ticket/853#comment:2</link>
      <guid isPermaLink="false">http://localhost/ticket/853#comment:2</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;
                changed from &lt;em&gt;closed&lt;/em&gt; to &lt;em&gt;reopened&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;resolution&lt;/strong&gt;
                &lt;em&gt;fixed&lt;/em&gt; deleted
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Looking at the changeset this cannot be functional yet: where is the implementation of the policy document exchange. It seems to me like this is currently adding the actual credentials to the request (self.ofs.conn.add_aws_auth_header(headers, 'PUT', path)).
&lt;/p&gt;
&lt;p&gt;
c.f.:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://doc.s3.amazonaws.com/proposals/post.html#Form_Fields"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://doc.s3.amazonaws.com/proposals/post.html#Form_Fields&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://code.google.com/apis/storage/docs/reference-methods.html#postobject"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://code.google.com/apis/storage/docs/reference-methods.html#postobject&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>rgrp</dc:creator>

      <pubDate>Tue, 04 Jan 2011 11:17:04 GMT</pubDate>
      <title>priority, type, description, summary changed</title>
      <link>http://localhost/ticket/853#comment:3</link>
      <guid isPermaLink="false">http://localhost/ticket/853#comment:3</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;priority&lt;/strong&gt;
                changed from &lt;em&gt;awaiting triage&lt;/em&gt; to &lt;em&gt;critical&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;type&lt;/strong&gt;
                changed from &lt;em&gt;defect&lt;/em&gt; to &lt;em&gt;enhancement&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;description&lt;/strong&gt;
              modified (&lt;a href="/ticket/853?action=diff&amp;amp;version=3"&gt;diff&lt;/a&gt;)
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;summary&lt;/strong&gt;
                changed from &lt;em&gt;plumbing for rest upload&lt;/em&gt; to &lt;em&gt;Understand how to upload to storage without having primary storage keys&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>rgrp</dc:creator>

      <pubDate>Tue, 04 Jan 2011 11:19:19 GMT</pubDate>
      <title>summary changed</title>
      <link>http://localhost/ticket/853#comment:4</link>
      <guid isPermaLink="false">http://localhost/ticket/853#comment:4</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;summary&lt;/strong&gt;
                changed from &lt;em&gt;Understand how to upload to storage without having primary storage keys&lt;/em&gt; to &lt;em&gt;Client upload to storage without having primary storage keys&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>wwaites</dc:creator>

      <pubDate>Sun, 09 Jan 2011 17:36:21 GMT</pubDate>
      <title>status changed; resolution set</title>
      <link>http://localhost/ticket/853#comment:5</link>
      <guid isPermaLink="false">http://localhost/ticket/853#comment:5</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;
                changed from &lt;em&gt;reopened&lt;/em&gt; to &lt;em&gt;closed&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;resolution&lt;/strong&gt;
                set to &lt;em&gt;fixed&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
we don't need a policy document exchange. it's simpler than that. the "server" instance has already permissions to upload. it just calculates the headers and such that are needed (based on the "client"'s initial headers) and gives them to the "client" the client then uploads without knowing the "server"'s credentials. The "client" never needs any of its own goostor credentials at all.
&lt;/p&gt;
&lt;p&gt;
the only separate step is to make the widget readable by the world.
&lt;/p&gt;
&lt;p&gt;
ticket &lt;a class="closed ticket" href="http://localhost/ticket/879" title="enhancement: Storage auth API (closed: fixed)"&gt;#879&lt;/a&gt; is to expose this as a small set of API calls.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item>
 </channel>
</rss>