Eye-Fi用のアップローダブリッジ - Doumeki (百目鬼) - を作りました
Eye-Fi用のアップローダブリッジを作りました。名前は Doumeki (百目鬼) といいます。
Doumeki を使うと、Eye-Fi からアップロードされた写真を複数のフォトストレージにアップロードすることができます。
図にするとこんな感じです。
動機
いまのところ、 Eye-Fi 単体でできることはこうなんですが:
- リモートのフォトストレージへのアップロード (ただし一か所だけ)
- Eye-Fi Managerが動いているパソコンへのアップロード
- Wi-FiのAd-Hoc接続した相手のパソコンへのアップロード (今のところ日本未発売のProのみ)
自分の場合、
- 複数のフォトストレージに同時にアップロードしたい
- でも、フォトストレージは一か所しか選べない
- LAN 内のファイルサーバにアップロードしたい
ということがやりたかったので Doumeki を作りました。
実装
Eye-Fi サーバとのやりとり
Eye-Fi Manager で選べるフォトストレージはFlickr、30days Album、livedoor PICSなどいろいろあるのですが、プリセットのものだけでオレオレフォトストレージは選択できません。しかし、実はプリセットのもののいくつかは自由にエンドポイント URL を指定できるので、これを使えば Eye-Fi からオレオレフォトストレージに画像を転送することができます。
Doumeki は Gallery Remote 2 (GR2) というのを Eye-Fi との転送プロトコルに使っています。
アップロードするストレージ
いまのところ、Doumeki がアップロードするストレージは
- Flickr
- 要 API key、secret、authentication token
- 参考: 橋本商会 » Flickr::Uploadで写真をアップロード
- Local
の 2 つだけですが、新しいフォトストレージを追加するのは比較的簡単にできます。
スケルトンファイル(Doumeki::Store::Skeleton)を同梱しているので、適切な名前でコピーして、Doumeki が提供している hok ポイント (login、add_item、new_album) を実装すれば OK です。
hook は全部実装する必要はありません。たとえば、Doumeki::Store::Local は認証などは必要ないので、画像ファイルの保存をする add_item だけを実装しています。
おいおい対応フォトストレージは増やしていきたいなぁとは思っていますが、もちろんパッチは大歓迎です!
ありがとうございました!
最後にありがとうございましたのコーナーです。
- #!shebang.jp : Eye-Fi から S3 にアップロード - livedoor Blog(ブログ)
- Doumeki を作るきっかけとなった id:ikebe さんのエントリです。Gallery Remote 2 を知ったのもこのエントリのおかげですし、コードもだいぶパクらせてもらいました。
- http://gist.github.com/127735
- id:darashi さんの Ruby (sinatra) の実装です。
- Remedie
- Eye-Fiとは全然関係ない Remedie ですが、HTTP::Engine とかそのへんの基本構成をパクらせてもらいました。
- HTTP::Engine
- id:yappo さんはじめ committerのみさんに感謝です。
- Ark - opensource.kayac.com
- Angelos - Next generation web application framework
- id:typester さんの Ark と id:dann さんの Angelos は、HTTP::Engine を使うのに参考にさせていただきました。