娘の出産あたりから8年強撮りためている写真、動画がかなりの量になってきました。USBHDD上でミラーリングして2重化しているものの、そろそろ失うと痛すぎる感じです。

さらに、最近はSSDを利用しだしていることもあり、写真は容量を食い過ぎるので極力SSD上においておきたくないという事情もあります。それでUSBHDDに逃がしても、今度は写真を見たり保存したりするためにUSBHDDを刺すのが面倒…という…。(←ダメ人間)

クラウド上にも保存して冗長化するのが良いだろうとは前からずっと思っていたのですが、無料で使える容量の制限の問題や(課金まではしたくない)、クラウドへ保存することの心理的壁もありいままでやって来ませんでしたが、先日のデジカメ購入の件もあり、再度検討しなおしました。

結果、Flickrの無料で使える容量が1TBとなっていることを知りました。1TB使えるなら全ての写真、動画ファイルを格納してもまだまだ余裕があります。USBHDDにも保管しておきつつさらにFlickrにもバックアップが良さそうです。さらに親族と共有する場所を直接FlickrにしてしまえばSSDの容量削減にもなるし…といいことづくめです。

で、過去の大量の写真ふくめて簡単にFlickrへアップロードが行えるプログラムが欲しくなります。この目的のものは色々と存在しているようですが、私の環境ではまともに動きませんでした…。

というわけで、せっかくなので自分でプログラムを組んでみます。

flickrのAPIを生で叩くのは大変そうなので(軟弱)、まず簡単に扱えるライブラリを探します。…となるとやっぱりrubyが良いですかね。すぐに以下のモジュールが見つかりました。

これを使ってみます。

まず、インストール。

geminstallflickraw

と、思ったらいきなりエラー

ERROR:Couldnotfindavalidgem'flickraw'>=0),hereiswhy:Unabletodownloaddatafromhttps://rubygems.org/-SSL_connectreturned=1errno=0state=SSLv3readservercertificateB:certificateverifyfailed(

https://s3.amazonaws.com/production.s3.rubygems.org/latest_specs.4.8.gz)

これ、前にも見た記憶がある・・・。最近rubyで何かやろうと思うとSSLのチェックに引っかかってばかりいる気がします。

こちらと全く同じ状況でした。同じように対処する。

gemsource-addhttp://rubygems.org
gemupdate-system
gemsource-removehttp://rubygems.org

改めてgemのインストール。

geminstallflickraw

インストールに成功しました。 ではサンプルを…。

APIKeyが必要なので、まずそれを入手。

商用目的ではないので、「APPLY FOR A NON-COMMERCIAL KEY」を選択。

キーをゲット!

まずはサンプルの「Simple」をそのまま試してみます。

C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:918:in`connect':SSL_connectreturned=1errno=0state=SSLv3readservercertificateB:certificateverifyfailed(OpenSSL::SSL::SSLError)

またしても、SSSLエラー。

OpenSSL::SSL::VERIFY_PEER=OpenSSL::SSL::VERIFY_NONE

を書き加える。 うまくいかない。gemの中で使ってるからかな。

以前も同じ事で引っかかって同じ記事を見ながら対応したなーと思いながら対処。これでうまく動きました。

続いてAuthenticationのサンプルを実行。認証にも成功しました。

超単純なロジックでのUploadもうまく行きました。 それでは…ということでフォルダを指定してその下にある画像、動画ファイルを再帰的に取得してアップロードするように簡単に書いてみます。

https://gist.github.com/ebibibi/64ca2cdd0aa1bbb2d516.js

一応これで動作しましたが、ネットワーク接続周りの問題ですぐにエラーになってしまって処理が終わってしまいます。また、やり直すと同じファイルをアップロードして重複してしまいます。この辺りの対処が必要です。続きはまた明日かな。