Eye-FiのPCへのデータ転送がうまく行かない時の対処法



ここに書くのはなんと3年ぶり、放置レベルが凄まじいので、反省しています。。。
ところで、昨年ずっとEye-FiのPC(Macbook Air)転送がうまくいかなかったので、その時の対処法を備忘録がてら記しておこうと思います。

Eye-Fiは、使い始めてもうかれこれ5年近くになります。
一時期Eye-Fiカードからデバイス(iPad)に直接転送してたこともあったのですが、すぐiPadの容量がいっぱいになってしまって、いまいちうまく運用できずでした。

結局我が家でのEye-Fiの使い方は、デジカメ内のEye-Fiカードの写真と、iPodやAndroid端末にある写真を、無線LAN経由でPCの外付けHDDに転送する設定をして運用しています。

ちなみに、保存用の外付けHDDは2TB×2台です。(片方のHDDに保存して、定期的にもう一方のHDDにバックアップ)

そんな感じで使っていたところ、ある日突然、Eye-Fiカードからの転送が途中で止まってしまいました。おそらく無線がつながりにくくて、とかそういう原因だと思うのですが、そういう現象がよく発生するようになりました。

具体的にはEye-Fi helperにカーソルを会わせた時に表示される、「送受信数」の下にある「ダウンロード中」がいつまで経っても減らず、PCへの転送がストップする、という状態です。(挙動がおかしかったときの写真がないですが、「送受信数」の下に「ダウンロード中」がいつまでも表示されます)

eyefierror2

Eye-Fi Centerを開いてみると、こんな感じで、途中でストップしてしまった時の表示になっています。

eyefierror1

この状態について、色々調べてみました。Eye-fiのエラーメッセージくらいしかヒントがないので、下記のキーワードで調べてみました。

  • 「Eye-Fi」「転送ステータス」「中断」
  • 「Eye-Fi」「アップロード中」「受信総数」
  • 「Eye-Fi」「このアップロードは中断されました」

色々調べたところ、下記のことがわかりました。

  • デジカメやスマホから、クラウドまではアップロードが出来ているらしい(PCへのダウンロードが詰まっているらしい)
  • 破損しているのかダメなファイルがあり、それをPC側にダウンロードする途中でキューが詰まっているらしい
  • Eye-Fiのソフトで処理をコントロールするDBを持っているらしい
  • DBは master.db というファイルで存在しているらしい
  • DBは sqlite のものらしい
  • Mac OS Xではデフォルトで sqlite がインストールされているらしい

sqliteが mac os xにはデフォルトで入ってるというのもラッキーでしたが、10年ぶりくらいにSQL文を実行して、詰まっているであろうファイルを削除してやれば、クラウド側に糞づまっているその他の正常な写真はまたうまく流れ出す(PCへの転送が再開する)んじゃなかろうかと仮説を立てた訳です。

こちらの「SQLite | MacでSQLite3を操作する」を参考にさせていただきました。

直接ふん詰まりの原因っぽいレコードを削除しようとしても、どれがそれかわからなかったので、怪しいデバイスからの転送を一括で削除してみました。

まず、master.dbのある場所ですが、Mac OS XでのEye-Fiデータベースは、各ユーザーのライブラリフォルダの下にあります。

つぎに、sqliteを起動して、どんなテーブルが存在しているかを確認します。

takeMBA:Eye-Fi takeyas$ sqlite3 master.db
SQLite version 3.7.13 2012-07-17 17:46:21
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from sqlite_master;
table|DB_MANIFEST|DB_MANIFEST|2|CREATE TABLE DB_MANIFEST (NAME	TEXT,TYPE	TEXT,SQL	TEXT)
table|TAB_PHOTO|TAB_PHOTO|3|CREATE TABLE TAB_PHOTO (ID				INTEGER PRIMARY KEY AUTOINCREMENT,SIGNATURE	TEXT NOT NULL UNIQUE,MAC_ADDRESS	TEXT NOT NULL,NAME			TEXT NOT NULL,SIZE			INTEGER NOT NULL,TRANSFER_START_TIME	INTEGER,TRANSFER_FINISH_TIME	INTEGER,SOURCE_LOCATION	TEXT,SYNC_STATUS		INTEGER,MEDIA_TYPE			INTEGER,DELIVERED_DESTINATIONS	INTEGER,GPS_LATITUDE		TEXT,GPS_LONGITUDE		TEXT,ERROR_CODE			TEXT,FLAGS				INTEGER,TAKEN_TIME		INTEGER,ORIENTATION	INTEGER)
index|sqlite_autoindex_TAB_PHOTO_1|TAB_PHOTO|4|
table|sqlite_sequence|sqlite_sequence|5|CREATE TABLE sqlite_sequence(name,seq)
table|PUBLISH_QUEUE|PUBLISH_QUEUE|6|CREATE TABLE PUBLISH_QUEUE (ID				INTEGER PRIMARY KEY AUTOINCREMENT,SERVER_ID		INTEGER NOT NULL,GROUP_ID		INTEGER NOT NULL,FILE_PATH		TEXT NOT NULL,AUTH_TOKEN		TEXT NOT NULL,PROFILE_ID		TEXT,LAST_PHOTO		INTEGER,PAYLOAD		TEXT,UPLOADED		INTEGER)

この中の「TAB PHOTO」というテーブルに、既にPC転送を終えたファイル、これからPC転送するファイル、全てのレコードが存在しているようです。

このテーブルのレコードから、糞づまってる写真がどのファイルかを探そうとしたものの、なかなかどれか分かりません。
とりあえず、怪しそうなデバイスを、MACアドレスで指定して、全部削除することにしました。

sqlite> select MAC_ADDRESS from TAB_PHOTO group by MAC_ADDRESS;
00-18-56-**-**-**
00-18-56-**-**-**
b4-52-7d-**-**-**
e0-18-77-**-**-**
ff-94-c3-**-**-**
sqlite> select count(*) from TAB_PHOTO where MAC_ADDRESS='e0-18-77-**-**-**';
396
sqlite> delete from TAB_PHOTO where MAC_ADDRESS='e0-18-77-**-**-**';

※上のやり方では、5つ登録しているうち、指定したデバイス(MACアドレスが e0-18-77-**-**-** のもの)からアップロードしようとしている写真は全て削除されてしまうので、ご注意ください。(このデバイスからのアップロードは諦めてもう一回アップし直す必要があります)

削除してみたら、仮説があたりだったみたいで、流れ出しました!
無事、Eye-FiのPC転送がうまく動くようになりました。他のデバイスからの写真も全部が糞づまっていたのですが、それらが一気にPCに転送されだします。

ということで、同じようにEye-FiからPCにデータが転送されない悩みをお持ちの方は、一度トライしてみてください。

最近Eye-Fiの新しいサービスとしてeyefi mobiが始まりましたけど、あっちのほうが全部フルサイズの写真もクラウドに管理する感じで良さげです。月額とかがかかってくるのが気になるとこですが、今回みたいなトラブルが面倒なことも天秤にかけると、今度試してみたいなぁと思う今日この頃。(昔からある Eye-Fiと eyefi mobi、はブランド訴求も全く違うようで、ロゴからして違います、そして古いEye-Fiもサービスを続けてるから、分かりにくいったらありゃしない)

また、機会をみつけてボチボチ書いていこうと思います。

Eye-FiのPCへのデータ転送がうまく行かない時の対処法」への1件のフィードバック

  1. ピンバック: Eye-FiのPCへのデータ転送がうまく行かない時の対処法 | In My Life

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です