これに対応するために、Tong Wangさんという方のs3fs-c という、s3fsからforkしたプロジェクトがあります。
しかし、このs3fs-cはs3fs-1.59からforkしたものなので、現在のs3fsの最新バージョンの1.61までの更新が反映されていません。
1.59から1.61の間の修正は、
- curlのエラー送受信の扱いの修正
- libcurlの特定のバージョンの場合の不具合の修正
- fuseオプションパーサとcurlハンドル使用時のメモリリークの改善
- 5GB超のファイルの場合マルチパートのPUTヘッダに変更
- コンパイル時のバグと、md5sum関数のメモリリークの改善
などがあり、これを取り入れることでより安定することになります。
(他にも改善点はありましたが、s3fs-cのコード変更により必要がなくなってしまったものもいくつかありました。)
そこで、s3fs-cをさらにforkし、そこに1.59(r356)~1.61(r368)までのリビジョンをマージしたs3fs-cloudpackを作ってみました。
memorycraft / s3fs-cloudpack
https://github.com/memorycraft/s3fs-cloudpack
インストールの仕方は普通のs3fsと同じです。
このs3fs-cloudpackと通常のs3fsの動作を比べてみます。
まず、AWSコンソール上でフォルダを作り、その中にファイルをアップロードします。
これらがマウントされているか確認します。
s3fs
# /usr/local/bin/s3fs hoge-bucket /mnt/s3/hoge-bucket -o allow_other # ls -l ---------- 1 root root 0 9月 7 17:37 hoge.txt ---------- 1 root root 0 9月 7 17:37 hoge2.txt ---------- 1 root root 0 9月 7 17:37 hoge3.txt ---------- 1 root root 5 9月 7 17:36 hoge4.txt ---------- 1 root root 5 9月 7 17:36 hoge5.txt ---------- 1 root root 0 9月 7 17:31 test.txt ---------- 1 root root 0 9月 7 17:37 welcome.txtオリジナルのs3fsではディレクトリがみつかりません。
s3fs-c(loudpack)
# /usr/local/bin/s3fs hoge-bucket /mnt/s3/hoge-bucket -o allow_other # cd /mnt/s3/hoge-bucket # ls -l -rwxrwxrwx 1 root root 0 9月 7 08:37 hoge.txt -rwxrwxrwx 1 root root 0 9月 7 08:37 hoge2.txt -rwxrwxrwx 1 root root 0 9月 7 08:37 hoge3.txt -rwxrwxrwx 1 root root 5 9月 7 08:36 hoge4.txt -rwxrwxrwx 1 root root 5 9月 7 08:36 hoge5.txt drwxrwxrwx 1 root root 0 9月 7 21:01 mount_if_you_can -rwxrwxrwx 1 root root 0 9月 7 08:31 test.txt -rwxrwxrwx 1 root root 0 9月 7 08:37 welcome.txt # # ls -l mount_if_you_can -rwxrwxrwx 1 root root 1 9月 7 12:03 can_you_mount.txts3fs-c(loudpack)のほうでは、正しくマウントされていることがわかります。
今度は、マウントしたファイルシステム上でファイルを作ってみます。
s3fs
# cd /mnt/s3/hoge-bucket # mkdir s3fs-original # touch s3fs-original/s3fs.org
s3fs-c(loudpack)
# cd /mnt/s3/hoge-bucket # mkdir s3fs-cloudpack # touch s3fs-cloudpack/s3fs.cloudpack
これをAWSコンソール上でみてみます。
通常のs3fsではフォルダとは別にディレクトリ名のファイルが余分にできてしまっていますが、s3fs-c(loudpack)では、正しくフォルダのみが表示されています。
これで、いままでよりは安定してつかうことができるのではないかと思います。
以上です。