,

Amazon S3 Ajax の認証

最近クラウドのRESTデータベースととブラウザのJavascriptだけのWebアプリを作ろうかと苦戦しています。まずは定番のAmazonS3かなと思ってEucalyptus相手に頑張っているのですが、最近のブラウザはXMLHttpRequestでDateヘッダーが設定できないということが判明しました。
リクエストのヘッダー内に認証用の署名をつけるためにはヘッダ中にDateをつけて、その情報も含めてハッシュを取る必要があります。なのでDateが設定できないと認証が通りません。代わりにx-amz-dateを使えば出来るという情報に出会いました。
でリクエストのヘッダーのDateをx-amz-dateに変えましたが、ダメでした。次のページをよく読むとx-amz-dateを使うときはハッシュを取るときに日時の前にx-amz-date:をつけたものから取る必要があるということでした。
http://s3.amazonaws.com/doc/s3-developer-guide/RESTAuthentication.html

これを知る前はGETの方はURLに署名を含める形で、POSTの方はフォームのmulti-partを生成していました。でもDELETEできなくて困っていました。これで解決のはず。

これ系のネタで検索してもあまりいい情報がヒットしなかったり古かったりするのですが、同じ事考えている人は少ないのかな?