背景
相比s3fs及mount-s3的优点是可以直接在/etc/fstab中写挂载点,不用手写开机服务。
相比MinFS的优点是/etc/fstab更稳定,MinFS在RHEL9下无法挂载
安装goofys
https://github.com/kahing/goofys
- 下载编译好的
Goofys:
# 下载
wget -cP /usr/local/bin/ https://github.com/kahing/goofys/releases/latest/download/goofys
# 赋予执行权限
chmod +x /usr/local/bin/goofys
# 查看Goofys的版本
/usr/local/bin/goofys -version

常用参数
| 参数 | 中文解释 | 说明 |
|---|---|---|
bucket[:prefix] | 桶名(可选前缀) | 要挂载的 S3 桶及其前缀路径(必须参数之一) |
mountpoint | 挂载点路径 | 本地目录,用于挂载 S3 桶(必须参数之一) |
--debug_fuse | 启用 FUSE 调试 | 显示与 FUSE 文件系统相关的调试信息 |
--debug_s3 | 启用 S3 调试 | 显示与 S3 请求相关的调试信息 |
--subdomain | 启用子域名模式 | 使用 bucket.endpoint的方式访问 S3(需要 DNS 支持) |
--endpoint value | 自定义 S3 端点 | 用于连接非 AWS 的 S3 服务,例如 MinIO,例如 http://ip:9000 |
-o value | 挂载选项 | 传递给系统的额外挂载参数,需谨慎使用 |
--cache value | 启用缓存目录 | 使用本地缓存目录,需启用 -o allow_other |
--dir-mode value | 目录权限 | 默认是 0755,即 rwxr-xr-x |
--file-mode value | 文件权限 | 默认是 0644,即 rw-r–r– |
--uid value | 所有文件的 UID | 默认为 0(root) |
--gid value | 所有文件的 GID | 默认为 0(root) |
--profile value | 使用 AWS 配置文件 | 读取 ~/.aws/credentials中指定的 profile |
--use-content-type | 设置内容类型 | 根据扩展名自动设置 Content-Type |
--cheap | 减少 S3 费用 | 降低性能以减少操作次数(减少计费) |
--no-implicit-dir | 假设目录存在 | 不去 S3 上判断目录对象是否存在,提升性能 |
--stat-cache-ttl value | stat 缓存时间 | 文件属性缓存有效期(如 1m0s) |
--type-cache-ttl value | 类型缓存时间 | 目录内类型信息缓存时间 |
--http-timeout value | HTTP 请求超时 | 默认 30 秒 |
--region value | S3 区域 | AWS 区域名,默认自动识别 |
--requester-pays | 请求者付费桶支持 | 是否允许访问 requester-pays 桶 |
--storage-class value | 存储类型 | 上传对象时使用的存储类型,例如 STANDARD |
--sse | 启用 SSE 加密 | 启用 S3 的服务端加密(SSE-S3) |
--sse-kms key-id | 启用 KMS 加密 | 使用指定的 KMS Key-ID 进行 SSE-KMS 加密 |
--sse-c value | SSE-C 加密密钥 | 使用 base64 编码的密钥进行自定义 SSE-C 加密 |
--acl value | 对象访问权限 | 上传时设置的访问权限,如 private, public-read等 |
-f | 前台运行 | 不以后台方式运行 goofys,适合调试 |
--help, -h | 显示帮助信息 | 打印帮助文档并退出 |
--version, -v | 显示版本信息 | 打印当前版本号并退出 |
创建认证文件
# 创建`.aws`目录
mkdir -p $HOME/.aws
编辑配置文件credentials:
vi $HOME/.aws/credentials
文件配置信息如下:
[default]
aws_access_key_id = AK
aws_secret_access_key = SK
挂载存储桶
# 将disk-bucket存储桶挂载到/mnt/目录下:
# goofys --endpoint=https://[KS3 ENDPOINT] [挂载存储桶名称] [挂载点]
goofys --endpoint=http://138.2.3.186:9000 disk /mnt/s3
## --subdomain 启用子域名模式
goofys --subdomain --endpoint=https://jp1.oss.com disk-bucket /mnt/
执行以下命令查看挂载结果:
df -h
注:挂载结果显示的Bucket容量为虚拟数值,Bucket实际无容量限制。
挂载成功显示结果如下所示:

开机自动挂载
vim /etc/fstab
/usr/local/bin/goofys#bucket /mnt/s3 fuse _netdev,allow_other,--profile=default,--dir-mode=0750,--file-mode=0640,--stat-cache-ttl=0,--type-cache-ttl=0,--endpoint=https://minio.net 0 0

常见问题
- 可能需要安装依赖
dnf install -y fuse fuse3 fuse3-devel
查看工具日志
输入以下命令查看工具日志:
tail /var/log/syslog
# 或
journalctl -xe | grep goofys
挂载调试模式
## --debug_s3 --debug_fuse 调试
goofys --debug_fuse --debug_s3 --endpoint=https://[KS3 ENDPOINT] [挂载存储桶名称] [挂载点]
2642

被折叠的 条评论
为什么被折叠?



