😀

Ubuntu20.04でgoofysを使ってS3をマウントする

2021/07/03に公開

はじめに

Gooofysは、AWS S3のバケットをPOSIX互換環境にマウントするためのGo言語のライブラリである。

https://github.com/kahing/goofys

本記事では、このgoofysをUbuntu20.04にインストールしてS3をマウントするまでの手順を示す。

環境

動作環境は以下の通り。

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

$ aws --version
aws-cli/2.2.1 Python/3.8.8 Linux/5.4.0-77-generic exe/x86_64.ubuntu.20 prompt/off

手順

goofysの公式サイトから pre-built binaries をダウンロードする。

なお、公式手順のgoコマンドでインストールする方法は、本記事執筆時点(7/2)では以下の通りエラーになる。

go-getで失敗
$ go get github.com/kahing/goofys
go: finding github.com/kardianos/osext latest
go: finding github.com/jacobsa/fuse latest
go: finding golang.org/x/sys latest
go: finding github.com/StackExchange/wmi latest
# github.com/kahing/goofys/api/common
go/pkg/mod/github.com/kahing/goofys@v0.24.0/api/common/conf_azure.go:272:34: accountsRes.Value undefined (type storage.AccountListResultPage has no field or method Value)
go/pkg/mod/github.com/kahing/goofys@v0.24.0/api/common/conf_azure.go:373:35: not enough arguments in call to client.ListKeys
	have (context.Context, string, string)
	want (context.Context, string, string, storage.ListKeyExpand)

ダウンロードしたpre-build binariesを適当なフォルダに格納し、rootユーザで実行権限をつけ、パスを通す。

$ ll /opt/goofys/goofys 
-rwxrwxr-x 1 root root 23M  73 07:09 /opt/goofys/goofys*

マウントポイントのフォルダを作成し、S3のバケット名を指定して、マウントする。

$ mkdir -p /mnt/point/
$ goofys bucket_name /mnt/point/

マウントポイントの"/mnt/point"に適当なファイル"directory/to/file.tar.gz"をコピペして、数秒待つと、S3にアップロードされるr。

アップロードされたことはaws-cliのコマンドで確認できる。

$ aws s3 ls s3://bucket_name --recursive --human-readable --summarize
2021-07-03 08:03:25   49.7 MiB directory/to/file.tar.gz
Total Objects: 8
   Total Size: 49.7 MiB

参考文献

https://genzouw.com/entry/2019/03/07/080500/1091/

Discussion