iPhoto/ApertureをPrimePhotoでバックアップ

Amazonの格安サービスを使用して、iPhotoやApertureのバックアップを効率的に。
(Photosは知りません・・・)

<前段>
前に、ディスクがクラッシュして2年分くらいの写真をなくすという非常に痛い目にあいました。

なので、どこかのクラウドサービスをいつも横目で眺めて、良さげなサービスがあれば入ろうと考えてたんだけど、なかなか決心できず。
別理由で、AmazonPrimeに加入したので、うまいことPrimePhotoを活用してバックアップできないかと考えて、試行錯誤。

はじめに、iPhotoライブラリをそのままPrimePhoto対象にしてみたんだけど、うまくアップロードされず。
次に、iPhotoのライブラリのリンクを作成し、そのフォルダをPrimePhotoと同期。
これは、うまくアップロードを始めることができたんだけど、写真以外に含まれている動画の容量でAmazonDriveが一杯になり、停止。
別の方法として、ライブラリに含まれるJPGだけを別の場所にコピーしてアップロードしようとしたんだけど、今のライブラリが80Gの大きさがあるので、
SSDをメインで運用しているのでそんなに容量に余裕がなく、腰が引け気味・・・
</前段>

ということで、フォルダ構造をコピーし、その中に含まれるJPGファイルのみにオリジナルへのリンクを作成するスクリプトを作ってみました。
使い方は、iPhoto(.aplibrary)をバックアップしたいとすると以下のような感じ。
[objc]
% python SymSync.py iPhoto.aplibrary <コピー向けに使用したいフォルダ> ["JPG",]
[/objc]

第1引数は、python。 プログラムをpythonで書いたので。command not foundとか出る人は、google様に聞いてみていただくしか・・・
第2引数は、スクリプト名なので、下記からダウンロードしたファイルのある場所を指定。
第3引数(iPhoto.aplibrary)は、バックアップ対象のライブラリを。(名称は、ターミナルで書くにんしてもらった方が良いかも)
第3引数は、コピー向けに使用したいフォルダ。i.e. PrimePhotoの同期対象に指定するフォルダ)
第4引数は、リンク作成対象の拡張子を複数指定可能。(大文字小文字等区別します)
自分のライブラリは、なぜかJPGファイルしかなかったので、上記で動作。
PrimePhotoで写真として認識されるかは、考慮しないので、例えば、MPGを指定したら、容量が溢れます。

スクリプト終了後、コピー向けに使用したいフォルダを指定したアップロードが終われば、バックアップ完了。
# 自分の環境では動きましたが、それ以上の確認はしてません。

なお、JPG等の対象ファイルについては、ショートカットを作成するだけなので、そんなに容量は取らないはず。
だけど、それなりには、必要なので、注意。末端にファイルが存在するかどうかを考慮せずにディレクトリ構造を構築しちゃいます。
自分の環境では、元のデータ量73GBに対して、46.5Gも使ってる。

なお、ショートカット作成先にすでにファイルがある場合には、何もしません。また、ショートカット作成先のファイル/フォルダを消すこともしません。
なので、もし、メンテしようとするならば、改めて別フォルダを指定して再作成してもらった方が良い気がします。

ダウンロード

ダウンロード後、適当なフォルダに解凍してください。