12月 202012
 

僕は SkyDrive の利用者なのですが、ことの発端は、Windows7 や OS X では SkyDrive がファイルマネージャから利用できるのに FreeBSD の (KDE の) ファイルマネージャでは見ることができないんかな?と、いうところから始まりました。

で、結論から先に書くと、多少問題はありますが /mnt 辺りにマウントできて、 ls とか打てば表示してくれます。でもってファイルマネージャ、例えば KDE4 の ファイルマネージャである dolphin から SkyDrive が参照することができてデスクトップにコピーとかもできるようになります。

では、その方法についてちょっと見て行きましょう;-)。

まずはじめに、僕は以前「SkyDrive をコッテリ使う。」というエントリを書きました。当時はまだ Microsoft から SkyDrive の App が出ていなかったので苦肉の策だったんですけどもね。最近は iOS や Android 用アプリ、上にも書いたデスクトップ用アプリがあるので簡単にアクセス可能になりました。

まぁ、 FreeBSD で利用するときはブラウザ経由で利用すればいーじゃん。と、いう話はあるのですが、どーせならネーテブに利用したい。ってんで、探してみるとその、上のリンク先のエントリに書いた SMEStorage ってのを利用すると mount することができることが解りました。

SMEStorage に付いてはリンク先のエントリを読んでください。で、スマートフォン用アプリが無い時代には SMEStorage を利用していたのですが、最近はすっかりとご無沙汰していたのであります。このサイトにログインすると Linux 用のクライアントが用意されているのでそれを利用してみることにしました。

SMEStorage のトップページはこちら http://storagemadeeasy.com/
その Linux 向けツールはこちら http://storagemadeeasy.com/LinuxDrive/

とりあえず CentOS 用の RPM をダウンロードして展開します。

$ rpm2cpio smestorage-3.0-16.noarch.rpm | cpio -id
$ cd usr/local/bin/
$ ls
smestorage
$ file smestorage
smestorage: a /usr/bin/perl -w script text executable

 
RPM を展開すると usr/local/bin/smestorage というのが現れます。 usr/share/ の下はとりあえず無視します。で、 smestorage というコマンドは perl のスクリプトなんですね。すげー。 Linux バイナリじゃないし。で、すかさず実行します;-)。が、perl の色々なモジュールが無いと言われるので ports からインストールしてあげます。ちょっと解らなかった ports は devel/p5-TimeDate ですかね。あとはサクっとインストールして完了です。

で、perl のモジュールが色々入ったので早速実行してみますが、あいや。 mount_fusefs ってなんだぁ? となります。 Fuse.pm をインストールした時に合わせて fusefs-kmod とか fusefs-libs がインストールされます。

fusefs ってのはファイルシステムの一種なのですが、僕は今回初めて知りました。以下の URL を参照して貰えれば一目瞭然でしょう;-)。

http://fuse.sourceforge.net/

ユーザ空間内で利用するためのファイルシステムだそうです。なんのこっちゃ?f(^^;;。

# kldload /usr/local/modules/fuse.ko
# ls -l /dev/fuse0
crw-rw----  1 root  operator    0, 118 Dec 28 22:45 /dev/fuse0

 
と、いうことで fuse.ko を kldload したらデバイスが一個生えてきました。こいつを利用して再度 smestorage を実行します。オプション無しで実行するとコマンドラインオプションが表示されます。

# ./smestorage
Usage: smestorage mountpoint user:password [providerUser:providerPassword] [--server=host] [--ao] [--DEBUG] [--ct=time]
Example:
smestorage /folder1 login1:password1 --server=eu.smestorage.com --ao --ct=30

 
第一パラメータにマウントポイントを指定します。そして login1:password1 は http://storagemadeeasy.com/ にアカウントを作成し、ログインするためのログイン名とパスワードを指定します。最初はこれだけでコマンドを実行します。

すると、あぁら不思議。と、いうか、あぁらすごい。 http://storagemadeeasy.com/ のウェブベースファイルマネージャで閲覧できる内容が /mnt に見えるようになりました。

# ./smestorage /mnt smeuser:smepasswd
# ls /mnt/
Image Thumbs/
My Quick Uploads/
My SkyDrive files (smestorage@live.jp)/
My Syncs/
My backups/
My contacts/
My iPhone Syncs/
My memos/
My voice memos/

 
SMEStorage のサービスで SkyDrive を利用していると “My SkyDrive files” というディレクトリができています。で、そこに cd して ls とか叩くと SkyDrive 上の内容が表示されるようになります。うひっ。

けど、多分純粋な SkyDrive の内容ではなく、SMEStorage がキャッシュした SkyDrive の内容だと思います。なので、更新とかしてあげないと最新の情報を SkyDrive と sync してくれないこもしれないです。まぁ、その辺りはある程度はしょーがいなですね。

そして、遅いかなー。まぁ、クラウド上のデータを ls するんだからそれなりに遅いですよね。それはまぁ、仕方のないことかな。

で、上記のコマンドオプションのみだと /mnt/ は root 権限でしか見ることができません。 smestorage コマンドのオプションに –ao ってのがあるので、このオプションを利用すると一般ユーザからでもアクセス可能になります。なので KDE4 の人は dolphin などでアクセスが可能になります。僕は LANG に UTF-8 を利用しているのですが、SkyDrive 上の日本語のフアイルも文字化けせずに利用することができます。

と、いうことで、これで SkyDrive の内容が自分の FreeBSD から直接アクセス(正確に言うと SMEStorage 経由の間接的なキャッシュ情報へのアクセス)できるようになりました。有る意味すごいですね。色々できそうな感じです;-)。

とわ言いつつ、基本的には SMEStorage のサービスというか機能に引っ張られての SkyDrive の利用なので、その点について、良いか悪いかはいまいち解りません。

今回は fusefs のお勉強がメイン。と言う感じでしょうか。あ。/mnt のアンマウントは umount /mnt で可能です。エラーが出ますが、多分アンマウントされていると思います。
それにしても smestorage コマンドが perl で書かれているので、僕はまだ中を覗いてないのですが、色々できそうですね。

 
このエントリ、続くか?;-)。