watermint.org

Takayuki Okazaki's blog

ツールのコア部分ができあがりました。いま手元の写真をアップロードしてテスト中ですがなかなか順調に動いています。まだUIが一切無いのでハードコードされた設定でしか動作しませんが、簡単にどのようなツールに仕上がっているか紹介しておきます。今回作っているアップローダ(j20000)は、ディレクトリ単位でアップロードの設定(Photosetの設定や、プライバシーの設定)をします。
実行時の様子
設定したディレクトリを定期的(今は10秒ごと)に監視して、新しいファイルが見つかればアップロード候補に自動的に追加します。ファイルは変更時刻の新しい順にアップロードされ、随時Photosetの作成やPhotosetへのファイル追加処理が実行されます。まだ安定性の確認中で実装していませんが、アップロード済みのファイルを自動的に削除するオプションをつける予定です。j20000を使うと、ApertureやLightRoomなどで特定のディレクトリに書き出した写真を、書き出された順に随時アップロードすることができます。FlickrExport for Apertureのようなプラグインと違い、Apertureとは独立して動作するのでApertureの書き出し処理が終わったら(ややリソース喰いの)Apertureを終了してアップローダだけに働かせておくことができます。
一番うれしいのは、夜寝る前にApertureの書き出し処理とj20000のディレクトリに対するアップロード処理を開始しておけば、自然とアップロードが完了するところです。いちいち、Apertureの処理が終わるまで待ってから寝なくてもいいのです。例外処理はものすごくおおざっぱにしか実装していないのですが、それでも今まで使った中で一番の安定感を感じます。ソフトはUIができあがった段階あたりで公開したいと思います。

円高だということもあって思い切ってFlickrExport for Apertureを買ったのはいいものの、品質が低すぎて正直返品したい。良くても100枚一度にアップロードできない。ネットワークが途中で切断されたりすると必ずクラッシュする。ひどいときにはたった5枚すらアップロードする前にクラッシュ。しかも、単にpluginがクラッシュするだけではなくてApertureを巻き込んでクラッシュするのでたちが悪い。Nikon D90を買ってから急激に写真の枚数が増えてきたので、安定したアップローダがやっぱりほしい。jUploadrが一番安定しているから1000枚単位の大量アップロードをするときにはまだこれを使っているけど、いくつか不満な点が。
R0024191
その1。サムネイルを作る時間が長すぎるし、CPUを使いすぎる。jUploadrに写真をDrag & Dropすると写真のサムネイルを作って、その後、Photosetに入れたりするための操作ができるんですが、まずこのサムネイルを作るのにとても時間がかかる。1000枚単位の追加をするとCPUは20分ぐらい100%フル稼働でほかのことができない。そもそも、Apertureで整理した後なので、サムネイルを確認して一枚ずつ設定を変えることもないからサムネイル作成処理は僕にとって不要。ディレクトリ単位でアップロードの設定ができれば十分。個別にいじりたいときでもファイル名だけわかればとりあえずApertureで確認できるし、そのときに個別にサムネイルを作ってほしい。
R0024208
その2。Photosetsへの写真追加に失敗することがある。今まで試した、FlickrExport for Aperture、1001、jUploadr、Flickr Uploadr 2.x/3.xのいずれでも、あらかじめ設定しておいたとおりに写真がPhotosetsに追加されずに全部の処理が完了されましたと表示されてしまうことがあって、結局あとからもう一度手動でOrganizerを使って整理するのが必須でした。1000枚単位の写真をWeb画面で整理し出すと大変なので、このあたりの処理が確実に実行されるか、再試行について詳しく設定できるようにしてほしい。
R0024236
その3。未現像のRAW画像について設定ができない。これは仕組み上しょうがないんだけど、Apertureなどのような現像ソフトを使っている場合、RAW画像はAperture上で管理されていて、JPEGに書き出したファイルについてようやくjUploadrがファイルとして認識して、アップロードのタスクとして追加される。RAW現像にかかる時間もなかなか侮れなくて1000枚単位だと20分ぐらいはかかるし、いちいちRAW現像処理が終わったことを目視確認してからjUploadrにかけるなんてやってると、面倒くさい。なので、できればApertureなどであらかじめ指定したディレクトリにRAW現像するようにして、現像が終わったJPEGファイルからディレクトリに対して設定されたメタデータを元に随時アップロードするようにしてほしい。またアップロードができたJPEGファイルが完了後に自動削除されるオプションがあるとよりうれしい。
_DSC3935-D
そんなこんなで前々から作ろうと思っていたFlickrへのバッチアップローダを作り始めました。Flickr APIは認証周りの実装が面倒くさいので敬遠していました。どうせ作るなら安定して使えるJavaで実装したいのだけど、JavaのFlickr APIライブラリは古かったりアップロードAPIが実装されていなかったりするのも今まで着手していなかった理由の一つ。でも今回は、今実家にいてすることがないので、がっつりと時間を使って実装に集中することができ、とりあえず認証まわりとアップロードまでのライブラリが作りあがりました。次は、UIとアップロード順序の管理をするあたりを作ります。アプリケーションの名前はj20000という名前にしました。