北海道に住みたいと言っているだけのブログ

ブログ写真を Flickr から脱却するための flickr-s3-sync-in-blog を作った

背景

Flickr という写真共有サービスがある。2000 年代から存在する歴史あるサービスで、当時は無料でかつ事実上無制限に写真を保管できたので、「とりあえず写真やってる人は登録しておく」的な位置づけのサービスだった。

自身も Flickr に写真を溜め込んだ。Flickr に上げた写真をブログに貼り付けることも多かった。

だが次第に Flickr の収益が悪化し、「お金払わないと保管していた古い写真を消すよ」というメッセージを出すようになった。消されるのは困る (ブログに貼った写真が消える) ので、渋々有料プランになって毎年数千円ほどを払う羽目になった。

その後もプランの値上げは続いており、ここ最近の円安もあって、いよいよ Flickr から脱却しようと決意した。

Flickr から脱却する上での課題

主にはブログに貼った写真が Flickr のものを参照しているという点になる。深堀りすると以下の 3 点。

  1. Flickr に画像を保存している
  2. 記事内で Flickr に保存した画像を参照している
  3. 記事内の画像のリンク先が Flickr になっている

数記事程度であれば手でも移行作業ができそうなのだが、修正対象が数十、数百記事となってくると面倒くさくなって「今年も Flickr にお金払えばいっか…」となってしまう。

解決策

1. に関しては画像を Flickr からどこか別のストレージにコピーすればよさそう。今回は Amazon S3 に同期させることにする。

2 や 3 は記事の HTML を書き換えられれば OK。

 

上記を自動で行うツールを作った。

 

github.com

詳しくは README を見てほしいが、例えばはてなブログの記事に対しては x-motemen/blogsync を組み合わせることで対応できる。

効果

十年近く Flickr を記事に埋め込んできたが、数分程度で S3 への移行と記事の修正が完了。現時点で Flickr を参照している記事はないはず。

今年こそは Flickr の有料プランを解約し、浮いたお金をレンズ費用に回す。

備考

S3 から画像配信する場合は適宜 CDN (CloudFront, CloudFlare など) を挟むのがスタンダード。

S3 + CloudFront をコマンド一発で構築する Terraform も用意しているので活用いただけると幸い。

 

github.com

TODO

  • Flickr 時代のときは drikin/FlickrEx を使って写真の EXIF を記事に表示できていたので、同等のことができるようにする
  • S3 以外にも同期できるようにする (例えばどこだろうか)
  • Flickr の Camera Roll のような画像ビューア (管理画面) を作りたい