s3fs挂载对象存储到本地

s3fs挂载对象存储到本地

一、S3FS介绍:

S3FS是Google开发的一款支持将对象存储中的bucket以文件形式导出的文件系统接口,兼容POSIX语法

S3FS基于FUSE开发的文件系统,允许Linux和Mac OS 挂载S3的存储桶到本地文件系统,并保持对象原来格式。

只要支持S3存储协议的都支持挂载,比如minio、华为云OBS、阿里云OSS等

二、安装 s3fs

1
2
3
4
5
#centos 安装
yum -y install s3fs-fuse

#ubantu 安装
apt install s3fs

三、挂载使用

S3FS参数说明

命令: s3fs BUCKET:[/PATH] MOUNTPOINT [OPTION]…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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中

四、创建访问密钥文件

1
2
3
4
5
6
#将aksk或账号密码写入文件中
#命令格式:echo [IAM用户访问密钥ID]:[ IAM用户访问密钥] >[密钥文件名]
echo "username:password" > /data/s3fs/.passwd-s3fs

# 设置密钥智能被当前用户访问
chmod 600 /data/s3fs/.passwd-s3fs

五、挂载 华为云OBS

1
2
# 命令格式: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