Goofys
更新时间:2024-08-23
工具概述
Goofys是一个用Go语言开发的适用于Linux和macOS系统的基于FUSE的轻量级开源挂载工具,可以将BOS存储桶挂载到本地文件系统中,目前仅支持少量的POSIX文件系统功能,更适用于只读的场景上使用。
主要特点
- 仅支持顺序写入,不支持随机写。
- 不支持符号链接或硬链接,不存储文件的mode/owner/group等属性。
- 不支持rename包含超过1000个子目录的目录。
- 创建时间(ctime)、访问时间(atime)与修改时间(mtime)总是相同。
- 不依赖本地缓存,保证close-to-open一致性。
安装方法
- Linux
curl -SL https://github.com/kahing/goofys/releases/latest/download/goofys -o goofys
chmod +x goofys
- macOS
# 安装方式一
brew install --cask osxfuse
brew install goofys
# 安装方式二
export PATH=$PATH:$GOPATH/bin
git clone https://github.com/kahing/goofys.git
cd goofys
make install
goofys -v
配置挂载
- 创建访问凭证文件和所在目录
mkdir ~/.aws
vim ~/.aws/credentials
- 配置访问AK/SK到credentials文件中
[default]
aws_access_key_id = BOS的Access Key ID
aws_secret_access_key = BOS的Secret Access Key
- 挂载北京地域的BOS gs-bucket到本地目录/mnt/bos-gs-bkt
mkdir /mnt/bos-gs-bkt
goofys --endpoint https://bj.bcebos.com gs-bucket /mnt/bos-gs-bkt
- 进入/mnt/bos-gs-bkt目录查看挂载结果,可以直接对gs-bucket内object进行读写和List操作
注意事项
- macOS brew安装osxfuse可能存在版本不兼容问题
Error - The FUSE for macOS installation package is not compatible with this version of macOS
,请参考osxfuse文档手动安装正确的版本。 - goofys也支持挂载bucket某个prefix到本地目录,把
替换成<bucket:prefix>即可。 - Linux环境中mount操作需要root权限,若不是root用户,需要使用sudo或者以root用户身份运行goofys进行挂载,否则会报错:
main.FATAL Unable to mount file system, see syslog for details
;详细报错日志可查看/var/log/messages文件。 - 可通过umount命令卸载已挂载的挂载点,如:
umount /mnt/bos-gs-bkt
。