2012年5月10日木曜日

SkyDriveとDropboxとジャンクション

SkyDrive仕様変更キタ!
SkyDriveが先日(2012年4月24日)の仕様変更により、クライアントアプリによる自動同期に対応したので、これを機に、今DropBoxに入れているファイルのバックアップ先として使ってみようと思い立った。
当稿は、その検証(試行錯誤)の記録である。
2サービスの特徴と、私がやりたいこと
DropboxとSkyDriveの特徴を(私に必要な範囲で)比較すると、下記のような感じである。
WebDAV ジャンクションの同期 容量
Dropbox ×
(DropDAVやOtixoを使えば可)
無料2GB(増量手段有り)
SkyDrive 無料7GB(但し以前からのユーザは25GB)
が今回の検証のキモ。

DropboxでWebDAVが使えないことに不満を抱いていた私としては、SkyDriveのWebDAV対応は非常に魅力的である。出先のPCでファイルを読み書きするには、やっぱWebDAVが便利。
また、両サービスともジャンクションの下のファイルを同期できるようなので、一方の同期フォルダにジャンクションを張って他方の同期フォルダに設定すれば、SkyDriveとDropboxを同期させることができそうだ。
私がイメージした利用方法は下図のような感じ。
Figure.1 DropboxとSkyDriveを同期するイメージ

ジャンクションについて詳しい解説はここではしない。ジャンクション機能を使ってディスク・ボリュームをマウントする - @ITなどを参照のこと。

このような設定で運用を開始してみたが、ジャンクションの下のファイルを更新してもサーバに同期されない現象に出くわした。そこで、DropboxとSkyDriveの両方のアプリに対して、ジャンクション配下のファイルに対する挙動を検証することにした。
検証: DropboxとSkyDriveは、ジャンクション内のファイルをちゃんと同期できるのか
PCにDropboxのクライアントアプリとSkyDriveのクライアントアプリをインストールした状態で検証を開始する。
Figure.2 左がSkyDrive同期フォルダ、右がDropbox同期フォルダ

<検証1>
Dropbox同期フォルダの下にジャンクションを作成する。今回は"pianoScore"というフォルダのジャンクションを作ってみた。
Figure.3 H:\pianoScoreのジャンクションをDropbox同期フォルダ内に作成
SkyDrive同期フォルダの下にも、まったく同じジャンクションを作ってみる。
Figure.4 H:\pianoScoreのジャンクションをSkyDrive同期フォルダ内に作成
ほどなく、Dropboxアプリ、SkyDriveアプリともサーバとの同期を開始した。Webにて確認すると、Dropbox、SkyDriveともに"pianoScore"フォルダがサーバ上に作られた。
Figure.5 Dropboxにフォルダが同期された
Figure.6 SkyDriveにフォルダが同期された
中のファイルもちゃんと入っている。
Figure.7 ジャンクション内のファイルもDropboxに同期された
Figure.8 同じく、ジャンクション内のファイルもSkyDriveに同期された
動作を図解してみた。
Figure.9 ジャンクション同期の概念図

<検証2>
次に、"pianoScore"フォルダの下に新規にファイルを作成してみた。
Figure.10 実フォルダ内にファイルを新規作成
ジャンクション内を確認しても、ちゃんとファイルがあることが確認できる。
Figure.11 作成したファイルがジャンクション内に見える様子
ところが、このファイル、待てど暮らせどDropboxにもSkyDriveにも同期されない。一晩寝かせてみてもダメであった。
図解。
Figure.12 ジャンクション下にファイルを作っても同期されない

<検証3>
アプリが不具合を起こしてうまく動いていないのかも? と思い、一度Dropboxアプリを殺して再度起動した。
Figure.13 Dropboxアプリの終了
するとどうだろう、アプリがサーバと同期を始めたではないか。
Figure.14 起動直後に同期を始めたDropboxアプリ

Webを確認すると、検証2で作成したファイルがサーバに同期されている!
Figure.15 Dropboxにファイルが同期された様子

同じ事をSkyDriveでもやってみた。
アプリを殺す。
Figure.16 SkyDriveアプリの終了
アプリを再起動すると、同期が始まる。
Figure.17 SkyDriveアプリを起動すると同期が始まった
Webを確認すると、ファイルが同期されている。
Figure.18 SkyDriveにファイルが同期された様子

結論
なんだかイケてない。結論を以下に整理した。

  • SkyDriveアプリ、Dropboxアプリとも、同期フォルダ内にジャンクションを新規作成すると、ちゃんとサーバに同期してくれる。
  • ところが、SkyDriveアプリ、Dropboxアプリともに、ジャンクション配下のファイルを監視できないらしく、ファイルを更新してもリアルタイムに同期してくれない。
  • SkyDrive、Dropboxとも、アプリを再起動すると、ジャンクション配下のファイルがサーバに同期される。アプリ起動時に、ジャンクション配下のファイルも含め、同期フォルダ内の全ファイルをスキャンしているものと思われる。

というわけで、SkyDriveとDropboxを常に同期させるためには、こまめにアプリを再起動する必要がある。
両アプリで同じ症状ということは、ファイルシステム(NTFS)の制約なのかね。

今回は私の環境(Windows7 SP1 x64)での検証結果なので、他の方の反証をお待ちしております。

0 コメント:

コメントを投稿