この手を使えば、OtixoとかDropDavとかの有料サービスを使わなくても、DropboxにWebDAV経由でアクセスできる。
WebDAVの何がイイかって、普通のDropboxクライアントアプリと違ってPCのローカルにファイルが残らないし、Proxyだって超えられちゃう。
Windows7ならWebDAVをネットワークドライブとしてマウントできるので、使い勝手もローカルフォルダと同じ。こいつぁすげえ。
早速、手持ちのCentOSサーバでやってみた。
LinuxのCLI版Dropboxクライアントを入れる
CLI版Dropboxはユーザー単位でインストールする仕様である。 Dropbox をダウンロード - Dropbox に従いインストールする。ちなみに今回は32bit。$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -管理用CLIスクリプトもダウンロードし、PATHが通ってるとこ(/usr/binとか)に置く。
$ wget https://www.dropbox.com/download?dl=packages/dropbox.py $ chmod +x dropbox.py $ mv dropbox.py /usr/bin/サーバ起動時にDropboxデーモンを自動起動させるため、 DropboxをLinuxで利用する方法 - maruko2 Note.から /etc/init.d/dropbox と /etc/sysconfig/dropbox を頂戴する。
chkconfigで自動起動をonにする。
$ chkconfig --add dropbox $ chkconfig --list dropbox dropbox 0:off 1:off 2:on 3:on 4:on 5:on 6:off起動してみる。
$ service dropbox start dropboxd を起動中 [ OK ]Dropboxを使う時のお約束として、lansync(LAN同期)をOffにする。lansyncとは同一セグメント内のDropbox間でファイルを同期するという機能だが、こいつがOnになっていると周囲にUDP17500番のブロードキャストを撒き散らしてお行儀が悪いため、自宅などの狭い環境で使う時以外は必ずOffっておくのがマナーだ。
設定は、Dropboxクライアントが動いている状態で、ユーザー毎に行う。設定内容は~/.dropboxの下のDBに書き込まれている模様(暗号化されててDBの中は見れない)。
$ dropbox.py lansync nここまででDropbox側の設定は終わり。
Dropbox同期ディレクトリを、WebDAV用ディレクトリに移す
WebDAV化する前に少し下準備をする。CLI版のDropboxクライアントは、ユーザーホーム(~/)の下にDropboxというディレクトリを作って、そこがDropboxサーバと同期する仕様になっている。
これではWebDAV化するには色々と不都合なので、WebDAV用ディレクトリ配下に移すこととする。
今回は、/data/webdav/ ディレクトリをWebDAVとして公開し、その配下にユーザー別のディレクトリを、さらにその配下にDropboxディレクトリを作る方針とした。
例えば、dsp74118ユーザのDropbox同期ディレクトリは、/data/webdav/dsp74118/Dropbox/ となる。
Linux版で同期ディレクトリの場所を変える方法はいくつかあるようだが、ひとまず単純にシンボリックリンクを使う方法を採用。
Dropboxクライアントを止めた状態で~/Dropboxを/data/webdav/dsp74118 に移動させ、ユーザーホームからシンボリックリンクを張ってやる。
$ service dropbox stop dropboxd を停止中 [ OK ] $ mkdir -p /data/webdav/dsp74118 $ mv /home/dsp74118/Dropbox /data/webdav/dsp74118/ $ ln -s /data/webdav/dsp74118/Dropbox /home/dsp74118/ $ service dropbox start dropboxd を起動中 [ OK ]このディレクトリには、利用ユーザー本人とapacheの両方が読み書きアクセスできる必要があるので、オーナーとパーミッションを変更する。
$ chown -R dsp74118:apache /data/webdav/dsp74118 $ chmod -R 770 /data/webdav/dsp74118
ApacheでWebDAVを動かす
ではいよいよWebDAVを動かす。 今回はポートベースのバーチャルホストでWebDAVを動かすことにした。httpd.confに↓みたいに書いて
(snip) LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so (snip) <VirtualHost *:30080> ServerName hogedav DocumentRoot /data/webdav <Directory /data/webdav> DAV on </Directory> </VirtualHost> (snip)Apacheを再起動する。
$ service httpd restart※本当はアクセス制御をしたり、httpsにするべきだと思うけど、とりあえずテストなのでその辺は手抜き(本稿の趣旨でもないので)。
早速試してみる
では、WindowsマシンにてWebDAVなDropboxを体験してみる。 まずはネットワークドライブとしてマウントする。Figure.1 WebDAVをネットワークドライブとしてマウント |
Figure.2 WebDAV内のDropboxフォルダ |
Figure.3 中身はバッチリDropboxと同期されている |
Figure.4 テストファイルを作成 |
Figure.5 テストファイルをWeb UIで確認 |
まとめ
それほど手間もかからず、DropboxがWebDAVストレージになった。うーん便利。あ、実際に使う時は、https化とアクセス制御は絶対にやってください。でないとDropbox内のファイルが世間にフルオープンになっちゃうので。
まあ、ライバルのSkyDriveは元からWebDAVが使えたりするんだけど…。
0 件のコメント:
コメントを投稿