CosmosVFSを使ってFreeBSDからGoogleDriveをマウントした

CosmosVFSを使ってFreeBSDからGoogleDriveをマウントした

CosmosVFSは筆者が開発しているオンラインストレージサービスの抽象化レイヤである。
CosmosVFSを用いることでGoogleDriveやOneDriveといったオンラインストレージサービスをFTPや9P2000で操作することが出来る。
本稿では、FreeBSDからCosmosVFSのFTPエンドポイントを経由して、GoogleDriveをマウントした結果について解説する。
本稿が想定するFreeBSDのバージョンは12.0である。

CosmosVFSの設定

CosmosVFSのサイトやマニュアルを参考にGoogleDriveのマウントとFTPエンドポイントの作成を行う。
なお、今回は/mnt/google-driveにGoogleDriveをマウントした前提で解説を進める。

 

curlftpfs(fusefs-curlftpfs)のインストール

 

# pkg install fusefs-curlftpfs

fuseの有効化

/etc/rc.confを編集して以下の行を追加する。

fusefs_enable="YES"

/boot/loader.confを編集して以下の行を追加する。

fuse_load="YES"

CosmosVFSのFTPエンドポイントをマウント

# mkdir /mnt/ftp
# curlftpfs www.cosmos-vfs.com:10021 /mnt/ftp -o user=USERNAME:PASSWORD,custom_list="LIST"

※ custom_list=”LIST”オプションは、curlftpfsがデフォルトではFTP標準ではない”LIST -a”コマンドを送出するため、-aを抑制するために指定する。

[疎通確認]
google-driveディレクトリが表示されている。

# ls /mnt/ftp/mnt
9p2000          asteroid        google-drive
amazon-s3       ftp             one-drive

 

GoogleDriveを操作する

FTP経由でFreeBSDのファイルシステムとしてGoogleDriveをマウントできているため、以下のような操作が可能である。

[ファイル一覧の取得]
GoogleDriveのディレクトリに移動して、lsコマンドを実行する。

# cd /mnt/ftp/mnt/google-drive
# ls
hoge.txt
share
test-dir
workspace
www

 

[ファイルの作成] 
※2020/05/04現在失敗する。FTPのCREATEコマンドをCosmos側が未実装のため。

# touch hoge2.txt
touch: hoge2.txt: Operation not supported

curlftpfsのログ

LOOKUP /mnt/google-drive/hoge2.txt
getattr /mnt/google-drive/hoge2.txt
ftpfs: operation ftpfs_getattr failed because No such file or directory
   unique: 87, error: -2 (No such file or directory), outsize: 16
unique: 88, opcode: LOOKUP (1), nodeid: 3, insize: 50, pid: 2070
LOOKUP /mnt/google-drive/hoge2.txt
getattr /mnt/google-drive/hoge2.txt
   unique: 88, error: -2 (No such file or directory), outsize: 16
unique: 89, opcode: CREATE (35), nodeid: 3, insize: 66, pid: 2070
create flags: 0x202 /mnt/google-drive/hoge2.txt 0100644 umask=0022
ftpfs: operation ftpfs_open failed because Operation not supported
   unique: 89, error: -45 (Operation not supported), outsize: 16

 

[ファイルの読み書き]
既にGoogleDrive上に存在するファイルに対しては書き込みと読み込みが出来る。

# echo "hello world" > hoge.txt
# cat hoge.txt
hello world

 

[ファイルの削除]
ファイルの削除は問題なく動作する

# rm hoge.txt

 

ディレクトリの削除も問題なく動作する

# ls -la
(省略)
drwxrwxr-x  1 root  wheel         0 May  4 00:00 hoge
# rm -fr hoge

まとめ

CosmosVFSとcurlftpfsを組み合わせることで、新規ファイルの作成に難があるもののFreeBSDからGoogleDriveを操作できることを確認した。
Linuxではgoogle-drive-ocamlfuseを用いることで同様の操作ができるが、FreeBSDではそのようなアプリケーションが存在しないため、CosmosVFSを経由してGoogleDriveを操作することには有用性があるだろう。
また、動作確認はしていないが、CosmosVFSはOneDriveやAmazonS3といったストレージにも対応しているため、これらのオンラインストレージをFreeBSDにマウントして操作できると思われる。
今後の展開として、CosmosVFSにFTPのCREATEコマンドを実装することで、ファイルの新規作成に対応することを検討している。

 

その他

※作業中に以下のエラーが出たらpkg-confをインストールする

checking for GLIB... configure: error: The pkg-config script could not be found or is too old.  Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.

[pkg-configのインストール方法]

# pkg install pkgconf

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です