ブログネタ
Webアプリケーション に参加中!

昨年末に発売された Eye-Fi Share の日本語版ですが、これまで個人的なバックアップ用途に利用していた Amazon S3 が使えないようだったので Gallery の Protocol を受けとって S3 にアップロードする Proxy 的なアプリを書いて対応してみました。

ソースは CodeRepos に入れておきました。Catalyst 使ってます。
Catalyst 以外に Catalyst::Plugin::Session 系がいくつかと Net::Amazon::S3 あたりが必要だと思います。

設定項目として画像をアップロードするバケット名を指定します。
mod_perl や FastCGI 等で Catalyst アプリを立ちあげたあとは、Eye-Fi の設定画面から Gallery2 を選択します。
以下は mod_perl2 の場合の設定例です。

<Perl>
use lib qw(/home/www/apps/GR2S3/lib);
</Perl>
PerlModule GR2S3
<Location /gr2>
    SetHandler perl-script
    PerlResponseHandler GR2S3
</Location>

URL に アプリケーションの URL、 ユーザー名に S3 の API KEY、 パスワードに シークレットを設定します。
Eye-Fi 側が Gallery2 を想定してるので /gr2/main.php のような パスにアクセスがあるのがちょっと気持ちわるいですが、気にしないでおきましょう。
画像は日付でプレフィックスがつけられて 2009-01-02/PICT001.JPG のようなキーで保存されます。

Gallery のリモートプロトコルは以下に仕様があります。全然綺麗とは言い難いのですが、簡単なので再実装は容易です。
Eye-Fi に対応するためには login, fetch-albums-prune, add-item, new-album のみを実装しておけば大丈夫なようです。

http://codex.gallery2.org/Gallery_Remote:Protocol