前言
minIO作为一个对象存储服务很适合作为视频、图像的存储后台。但是对象存储的文件操作一般都是通过API、SDK或者Web管理页面来处理,本地操作并不是很有好。为了方便本地操作我们可以使用s3fs-suse
将存储桶挂载为本地文件夹,方便查看,管理文件。
安装s3fs
Github:https://github.com/s3fs-fuse/s3fs-fuse
自己的系统是OpenSUSE Leap 15.3
,所以直接在软件源中安装
zypper in s3fs
如有需要也可以下载源码安装。
挂载文件
在挂载文件之前,需要先配置认证文件:
echo "ACCESS_KEY:ACCESS_SCRECT" > /etc/passwd-s3fs
然后可以直接挂载存储桶了
存储桶:bucket
MinIO: https://minio.domain.com:9000
Region: cn-north-1
挂载点:/mnt/minio/
s3fs bucket -o use_path_request_style,url=https://minio.domain.com:9000,endpoint=cn-north-1 /mnt/minio/
其中use_path_request_style
对于Minio来说是必须的,未指定的话s3fs
将以https://bucket.minio.domain.com:9000
来访问。
我们可以通过df
命令来检查是否挂载成功:
df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
......
/dev/sda ext4 916G 105G 765G 13% /mnt/disk1
s3fs fuse.s3fs 256T 0 256T 0% /mnt/minio
接下来的问题
通过前面的步骤挂载出来的文件出了本人之外都无法读取以及操作:
ls -l /mnt/minio
总用量 2
d--------- 1 root root 0 1月 1 1970 music
d--------- 1 root root 0 1月 1 1970 phone
d--------- 1 root root 0 1月 1 1970 system
d--------- 1 root root 0 1月 1 1970 video
为了正常使用,操作文件,我们还需要指定一些关于权限的选项:
- 允许其他用户操作
在/etc/fuse.conf
中将user_allow_other
解除注释
并且在挂载命令中指定-o allow_other
- 指定挂载用户
通过-o uid=xxx,gid=xxx
来指定用户和组 - 指定存储桶中文件权限
通过-o umask=xxxx
来指定文件权限,不过这里的权限数值是做减法。
如果想将文件权限指定为0755
,则umask
的值应该为7022
,可以简化为umask=022
- 指定挂载点权限(可选)
通过-o mp_umask=xxxx
来指定挂载点权限,用法同umask
一样
那么我们就可以将挂载命令写为:
s3fs bucket -o use_path_request_style,allow_other,uid=1000,id=100,umask=133,mp_umask=022,url=https://minio.domain.com:9000,endpoint=cn-north-1 /mnt/minio/
则挂载出来的文件就可以满足我们基本的操作需求了
ls -l /mnt/minio/
总用量 2
drw-r--r-- 1 tianliang users 0 1月 1 1970 music
drw-r--r-- 1 tianliang users 0 1月 1 1970 phone
drw-r--r-- 1 tianliang users 0 1月 1 1970 system
drw-r--r-- 1 tianliang users 0 1月 1 1970 video