挂载对象存储OSS到Linux系统

更新时间: 2023-06-01

挂载步骤

安装依赖软件:FUSE

执行以下命令安装依赖软件:

BC-Linux, CentOS:

sudo yum install -y fuse

Ubuntu:

sudo apt install -y fuse

配置OSS连接信息

创建用于配置OSS连接信息的文本文件,模板如下:

[OSS]
type = s3
provider = inspur
access_key_id = XXXXXXXX
secret_access_key = XXXXXXXXXXXXXXXX
endpoint = XXXXXXXX.inspurcloudoss.com
location_constraint = XXXXXXXX
acl = private

挂载OSS

sudo mkdir -p /test/oss
sudo rclone mount OSS:sampletest /test/oss --daemon --allow-other --config /oss/rclone/oss.conf --cache-dir /tmp/rclone --vfs-cache-mode writes

其中:

  • /test/oss:挂载到本地的文件夹路径,该文件夹必须存在,并且必须为空;
  • OSS:用户自定义的名称;
  • sampletest:需要挂载的桶名;
  • 挂载命令的参数,详细说明请参考附录-挂载命令常用参数说明

挂载成功后,即可浏览桶中的文件,并且可以进行上传、下载和新建等常用操作。

注意事项:

  • 每个桶都需要单独挂载,全局资源池不支持此模式;
  • 若对存储桶对应的文件夹进行删除操作,无论存储桶是否存在文件,桶都将会被删除,请谨慎操作。
  • 若对存储桶对应的文件夹进行改名操作,会导致OSS存储桶名称发生改变,并且桶的设置会丢失,请谨慎操作。
  • 如果挂载操作是以后台进程的方式执行(–daemon),可通过以下命令结束挂载:
    sudo fusermount -u /test/oss
    

设置开机自启动挂载硬盘

由于如上操作在电脑重启后,映射的磁盘将会消失,需要再次手工操作。因此,我们可以设置自启动装置,让服务器每次重启后都自动挂载磁盘。 在目录"/etc/systemd/system/"下创建挂载配置文件(test-oss.mount),模板如下:

[Unit]
After=network-online.target
[Mount]
Type=rclone
What=OSS:sampletest
Where=/test/oss
Options=rw,allow_other,args2env,vfs-cache-mode=writes,config=/oss/rclone/oss.conf,cache-dir=/tmp/rclone

备注:

  • What:需要挂载的OSS配置别名和桶名;
  • Where:挂载路径,并且文件名test-oss.mount必须和挂载路径匹配(路径中的"/"替换成"-"); 在目录"/etc/systemd/system/"下创建挂载自动配置文件(test-oss.automount),模板如下:
    [Unit]
    After=network-online.target
    Before=remote-fs.target
    [Automount]
    Where=/test/oss
    TimeoutIdleSec=600
    [Install]
    WantedBy=multi-user.target
    
  • 自动挂载配置的文件名必须和挂载配置的文件名相同。

开启自动挂载

执行命令:

sudo ln -s /usr/bin/rclone /sbin/mount.rclone
sudo mkdir -p /test/oss
sudo systemctl --now enable test-oss.automount

查看挂载状态

执行命令:

systemctl status test-oss.automount

附录

常用参数

参数 说明
-n = --dry-run 测试运行,查看Rclon在实际运行中会进行哪些操作
-P = --progress 显示实时传输进度,500mS刷新一次,否则默认1分钟刷新一次
--cache-chunk-size 5M 块的大小,默认5M越大上传越快,占用内存越多,太大可能会导致进程中断
--onedrive-chunk-size 100M 提高OneDrive上传速度适用于G口宽带服务器(默认为320KB)
--drive-chunk-size 64M 提高Google Drive上传速度适用于G口宽带服务器(默认为8M)
--cache-chunk-total-size SizeSuffix 块可以在本地磁盘上占用的总大小,默认10G
--transfers=N 并行文件数,默认为4
--config string 指定配置文件路径,string为配置文件路径
--ignore-errors 跳过错误
--size-only 根据文件大小校验,不校验hash
--drive-server-side-across-configs 服务端对服务端传输
--no-modtime 不读取/写入文件的修改时间,建议打开此选项,以提高网关性能;