概述
对象存储服务目前主流方式是通过aws sdk和restapi,以及预签名url等进行访问,也有使用s3cmd,s3browser等开源客户端进行访问。这些访问方式不仅支持数据的访问下载,同时也支持acl,policy,lifecycle,以及cors等配置管理。 在部分应用和业务场景下,需要将S3服务作为类文件系统接口,映射到本地使用。目前linux下使用较多的是s3fs,该工具可直接将s3bucket挂载为本地文件系统(s3fs挂载ceph rgw服务)。而本文主要演示如何windows下将s3bucket映射为本地磁盘。
软件需求
- windows环境
- 安装winfsp支持(下载地址)
- 安装rclone(下载地址)
- 对象存储环境(minio服务、ceph radosgw服务)的endpoint和对应的ak sk。
环境配置
winfsp直接下载安装即可
rclone下载完成后是一个离线解压包,其中包含rclone.exe可执行文件,下载后只需要解压到本地任意目录即可。
如图,将rlcone.exe所在文件夹放置于D盘根目录下。
然后在配置系统环境变量
在系统变量 Path中加上rclone.exe所在的目录
此处以D:\rclone为例
配置完成
使用rclone挂载
- 新建rclone配置文件
rclone config
会提示当前没有远程配置,是否新建
2. 这里输入n,回车,选择new remote
- 输入我们想定义的磁盘名称,然后回车继续,此处以s3disk为例
- 提示选择我们要使用的存储类型,我们使用s3类存储,这里选择5
- 继续选择细分的s3服务类型,此处根据自己的对象服务来选择,常见的,如果ceph radosgw作为对象存储服务后端,此处选择4,如果使用minio此处选择18,阿里云OSS为2,其余的自行判断。此处以ceph 对象存储为例:
选择4后继续 - 提示让我们选择验证方式,直接回车。会提示要输入ak/sk,依次输入即可
- region部分直接回车,进入endpoint部分,输入对象存储服务终端地址。(ceph对象存储为radosgw服务ip:7480)
- ACL部分按需选择,如果没有特别需求,直接回车,采用私有桶即可。这里也解释下各种ACL。
- 分别为:
- 私有(只有桶owner有完全权限,其余任何用户无法访问)也是s3 create bucket默认的桶类型
- 公共读(桶owner完全权限,所有用户可读)
- 公共读写(桶owner完全权限,所有用户可以读写)
- 认证读(桶owner完全权限,其余s3用户通过aksk认证的用户可以读)
- 桶拥有者读(对象拥有者拥有对象的完全权限,桶拥有者对桶内所有对象有读权限)
- 拥有者完全权限(桶和对象拥有者同事拥有对象的完全权限)
一般场景下,我们选择私有桶,和bucket policy进行权限控制,桶acl一般不调整
- 服务端加密部分,如不采用,直接回车即可。
kms不采用,直接回车
- 这里选择No不编辑高级配置即可。如有需要可以按y进行编辑(包括分段大小,更细的权限控制,压缩方式等),此处不需要,直接回车即可
- 配置完成后,按q退出即可
- 到此配置完成,可以进行挂载,挂载命令格式如下:
rclone mount 配置Name:/桶名 挂载后显示的盘符: --cache-dir 本地缓存文件夹 --vfs-cache-mode writes
此处实际挂载命令为
rclone mount s3disk:/cephbucket Z: --cache-dir D:\disk-cache --vfs-cache-mode writes
- 挂载完成,可以看到系统磁盘中多了一个硬盘,至此挂载完成
其他
对象存储服务本质还是索引管理,一级key寻址,和传统nas,目录层级有区别。因此在s3转nas,转本地文件系统中,要注意对象存储特性和文件系统区别。