SOFTELメモ

Softel Inc.

【linux】s3fsでBASE Storageを使ってみる(CentOS6で)

問題

さくらが BASE Storage (B) を始めたので、s3fsで試してみたい。

s3fs

答え

fuseもs3fsも自前でコンパイルしてみた。

fuse

yumリポジトリのfuseは2.8.3で、最新のs3fsは2.8.4以上が必要らしいので、yum install fuse fuse-devel ではだめっぽかった。

cd /usr/local/src
wget http://sourceforge.net/projects/fuse/files/latest/download?source=files
tar -xzf fuse-2.9.3.tar.gz
cd fuse-2.9.3
./configure --prefix=/usr
make
make install

--prefix=/usr しないと、パスの調整がめんどくさくなりそうなので、簡単そうな設定を選んだ。

(ldconfig、modprobe fuse は必要? → ldconfig しないといけない場合もあった。しなくてもよかったこともあった。)

s3fs

wget https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.76.tar.gz -O s3fs-fuse-1.76.tar.gz
tar -xzf s3fs-fuse-1.76.tar.gz
cd s3fs-fuse-1.76
./autogen.sh
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
./configure --prefix=/usr
make
make install

export PKG_CONFIG_PATH=/usr/lib/pkgconfig をしないと、./configure のとき、以下のようなエラーになる。

checking for DEPS... configure: error: Package requirements (fuse >= 2.8.4 libcurl >= 7.0 libxml-2.0 >= 2.6 libcrypto >= 0.9) were not met:

No package 'fuse' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

使ってみる

さくらのBASE Storageのユーザー名とトークンを ~/.passwd-s3fs に書く。

vi ~/.passwd-s3fs

書式は、「ユーザー名:トークン」。

namespacexxx:XXXXxxxxXXXXxxxxXXX/x+12345abcdef/abc123

パーミッションを600に変更する。

chmod 600 ~/.passwd-s3fs

マウントする。

mkdir ~/sakura
s3fs namespacexxx ~/sakura -o url=https://b.storage.sakura.ad.jp

url=http://b.storage.sakura.ad.jp でも mountできた。

ローカルのファイルと比較すれば、ところどころ体感でも遅く感じる部分はあるけど、touch, vi, cp, mkdir などできた。日本語ファイル名も使用可能。

メモ

CentOS6で、configure で以下のエラーが発生したら、

No package 'libcrypto' found

openssl-devel をインストールする。

yum install openssl-devel
yum install -y openssl-devel libcurl-devel libxml2-devel

関連するメモ

コメント