Faradayでawsの認証ヘッダを付けるミドルウェア書いた

rubyでs3からファイルをダウンロードするときはAWS SDK for ruby使えば簡単にできるんだけど、既にFaradayで取得処理が構築されてる部分でS3にも対応させたいところが出てきたのでAWSの認証ヘッダを付けるためのミドルウェアを書いてみた。

tarhashi/faraday_middleware_aws_auth

酒飲みながら作成しててまだ対応してない部分があったり、本物のS3にはまだ接続を試してなくてRiak CSでしか動作確認してなかったりだけど一応単純なgetだけはできた。

使うときはこんな感じで使う。

conn = Faraday::Connection.new(:url => 'http://host_name') do |builder|
  builder.use Faraday::Request::AwsAuthorization, {:access_key_id => "your_access_key_id", :secret_access_key => "your_secret_access_key"}

  builder.response :logger
  builder.adapter Faraday.default_adapter
end

response = conn.get "/foo/bar"
puts response.body