2012/05/02

UbuntuのCUIからWebdavを利用する方法とか

私のホームページで公開しているものは大半が box.net に置かれています.
で,ついさっき修正したバルーンもそこにあります.

この box.net はオンラインストレージサービス(ネット上に個人のデータ領域を提供するサービス) なのですが,数あるオンラインストレージサービスの中でもこのサービスを利用した理由は Webdav 機能がついているからなんですね.

Webdav っていうのは,Windows でも Ubuntu でも標準で付いているファイラー(ファイルマネージャ)から直接,そのサービスに接続する機能です.

通常のオンラインストレージサービスは,「ブラウザでそのサービスにアクセス→アップロードボタンをクリック→アップロードファイルを選択→アップロード開始」という流れなのですが,Webdav 機能がついていると,いつも通りにファイルを移動・コピーさせる感覚でオンライン上にファイルをアップロード,ダウンロード,編集することができます.

そのやり方は他の記事にお任せしましょう(ぉぃ.

Ubuntu の標準ファイルマネージャは Nautilus で Webdav への接続は簡単です.Windows も然り.しかし,私が現在メインに使っている OS は Lubuntu 12.04 であり,この標準ファイルマネージャは PCManFM…このファイルマネージャ,Webdav はサポートしているようなのですが,どうにも box.net に接続できない….ググっても欲しい情報が手に入らない….


というわけで,CUI で処理しようと思います.
長いので以降は折りたたみ.


この作業に必要なのは davfs2 パッケージです.apt-get やパッケージ管理マネージャからさくっと入れちゃいましょう.
$ sudo apt-get install davfs2
次にマウントポイントを作ります.
$ mkdir ~/box.net
そして,マウント.
$ sudo mount -t davfs -o rw,uid=<マウントするユーザのuid>,gid=<マウントするユーザのgid>  https://www.box.net/dav ~/box.net
あとは box.net のアカウントとパスワードを尋ねられるので,それを入力すれば自分のホームディレクトリ内の box.net ディレクトリ内に box.net の内容ができていて,いつも通りのファイル操作でアップロード,ダウンロード,編集ができます.

なお,終わったら
$ sudo umount ~/box.net
とすることで完全に box.net のサーバに現在の状況が反映されます.


……毎回,こういうことをするのは面倒なので,関数を作ってみました.
~/.bashrc のファイル末尾に以下の関数をつけてリロードすれば box.net と打ち込むだけで davfs2 インストール後の作業が自動的に行われます.しかも,マウント済みの状態で実行するとアンマウント処理が行われます.
# box.net 接続関数
box.net(){
 boxnet_mount=~/box.net

 if [ ! -d ${boxnet_mount} ]; then
  mkdir ${boxnet_mount}
 fi

 username=`whoami`
 if [ "`mount | grep \"/home/${username}/box.net\"`" ]; then
  echo -n "box.net is already mounted. Do you want to remove it? (y/N) > "
  read user_select
  if [ "${user_select}" = "y" -o "${user_select}" = "Y" ]; then
   sudo umount ${boxnet_mount} && echo "Complete" || echo "Failed..."
  else
   echo "Canceled..."
  fi
 else
  uid=`id -u ${username}`
  gid=`id -g ${username}`
  sudo mount -t davfs -o rw,uid=${uid},gid=${gid}  https://www.box.net/dav ${boxnet_mount}
 fi
}

0 件のコメント:

コメントを投稿