s3fs挂载对象存储到本地
一、S3FS介绍:
S3FS是Google开发的一款支持将对象存储中的bucket以文件形式导出的文件系统接口,兼容POSIX语法
S3FS基于FUSE开发的文件系统,允许Linux和Mac OS 挂载S3的存储桶到本地文件系统,并保持对象原来格式。
只要支持S3存储协议的都支持挂载,比如minio、华为云OBS、阿里云OSS等
二、安装 s3fs
centos 安装
yum -y install s3fs-fuse
ubantu 安装
apt install s3fs
三、挂载使用
S3FS参数说明
命令: s3fs BUCKET:[/PATH] MOUNTPOINT [OPTION]…
OPTIONS:
-
passwd_file
: 指定要使用的s3fs密码文件 -
url
: 设置用于访问对象存储的 url -
endpoint
: 存储端点,默认值为us-east-1
-
umask
: 为装载目录设置umask -
no_check_certificate
: 不检查认证 -
use_path_request_style
: 使用路径请求样式(使用传统API调用),兼容支持与不支持S3的类似api的虚拟主机请求 -
nonempty
: 允许挂载点为非空目录 -
default_acl
: 默认private,取值有private,public-read -
ensure_diskfree
: 设置磁盘可用空间。如果磁盘空闲空间小于此值,s3fs不适用磁盘空间 -
allow_other
: 允许所有用户访问挂载点目录,可将该挂载点用于创建NFS共享 -
use_cache
: 指定本地文件夹用作本地文件缓存。默认为空 -
del_cache
: 在S3FS启动和退出时删除本地缓存 -
enable_noobj_cache
: 减少s3fs发送的列举桶的请求,从而提升性能 -
dbglevel
: 设置消息级别,默认关键(critical)
, 可以使用info
进行调试输出 -
multireq_max
: 列出对象的并行请求的最大数据 -
parallel_count
: 上传大对象的并行请求数 -
retries
: 默认值为5,传输失败重试次数 -
storage_class
: 存储类(默认为标准
) ,值有standard
,standard_ia
,onezone_ia
,reduced_redundancy
-
connect_timeout
: 连接超时时间,默认为300秒 -
readwrite_timeout
: 读写超时,默认值为60秒 -
max_stat_cache_size
: 最大静态缓存大小,默认值为100000个条目(约40MB) -
stat_cache_expire
: 为stat缓存中条目指定过期时间(秒)。此过期时间表示自stat缓存后时间 -
-f
: 前台输出执行信息 -
-d
: 将dubug消息输出到 syslog中
创建访问密钥文件
将aksk或账号密码写入文件中
#命令格式:echo [IAM用户访问密钥ID]:[ IAM用户访问密钥] >[密钥文件名]
echo "username:password" > /data/s3fs/.passwd-s3fs
# 设置密钥智能被当前用户访问
chmod 600 /data/s3fs/.passwd-s3fs
挂载 S3存储
利用S3fs在Amazon EC2 Linux实例上挂载S3存储桶
# 命令格式:s3fs [S3存储桶名] [本地目录名] -o passwd_file=[密钥文件名] -o endpoint=[区域名]
s3fs prodfile-bucket /data/s3fs/s3mnt -o passwd_file=/data/s3fs/.passwd-s3fs -o url=http://s3.cn-north-1.amazonaws.com.cn -o endpoint=cn-north-1
挂载华为云OBS
# 命令格式:s3fs [S3存储桶名] [本地目录名] -o passwd_file=[密钥文件名] -o endpoint=[区域名]
s3fs prodfile-bucket /data/s3fs/s3mnt -o passwd_file=/data/s3fs/.passwd-s3fs -o url=http://obs.cn-north-4.myhuaweicloud.com
挂载minio存储
# 需要加上 use_path_request_style进行兼容
s3fs prodfile-bucket /data/s3fs/s3mnt -o passwd_file=/data/s3fs/.passwd-s3fs -o url=http://www.mydomain.com:9001 -o use_path_request_style
# 可以使用 -o dbglevel=info -f 进行输出调试信息
s3fs prodfile-bucket /data/s3fs/s3mnt -o passwd_file=/data/s3fs/.passwd-s3fs -o url=http://www.mydomain.com:9001 -o use_path_request_style -o dbglevel=info -f
开机自动挂载
写入到 /etc/fstab
# 命令格式:s3fs#[S3存储桶名] [本地目录名] fuse _netdev,[options1],[optins2]... 0 0
s3fs#prodfile-bucket /data/s3fs/s3mnt fuse _netdev,passwd_file=/data/s3fs/.passwd-s3fs,url=http://obs.cn-north-4.myhuaweicloud.com 0 0