配置阿里云子账号
创建一个阿里云子账号,并赋予AliyunOSSFullAccess
权限。生成 AccessKey
,记录下 AccessKeyID
和 AccessKeySecret
的值,后面会用到。
安装 rclone
推荐使用官方提供的一键脚本安装,适用于所有 Linux 发行版:
curl https://rclone.org/install.sh | sudo bash
如果你使用 Ubuntu 或 Debian,推荐使用 apt 来安装
sudo apt install rclone
如果你想通过其他方式安装,请参考官方文档。
连接阿里云 OSS
创建 rclone 配置文件夹(若不存在):
mkdir -p ~/.config/rclone
编辑配置文件:
vim ~/.config/rclone/rclone.conf
输入以下内容,并按实际情况填写 access_key_id
、 secret_access_key和
endpoint
。
[oss]
type = s3
provider = Alibaba
access_key_id = 此处改为你的 access_key_id
secret_access_key = 此处改为你的 secret_access_key
endpoint = oss-cn-zhangjiakou-internal.aliyuncs.com 此处请根据你oss所在地区分配的地域节点配置
acl = public-read
storage_class = STANDARD
bucket_acl = public-read
保存并退出。
挂载阿里云 OSS
创建用于挂载的本地目录(这里以 /mnt/ossfs
为例):
mkdir -p /mnt/ossfs
安装挂载 OSS 需要用到的 fuse 工具:
sudo apt install fuse fuse3
编辑 /etc/fuse.conf
:
sudo vim /etc/fuse.conf
删掉 user_allow_other
前面的注释,如图所示。保存并退出。
挂载存储桶(这里以挂载 public-sourcecdn
存储桶的 /wiki
目录为例):
rclone mount oss:public-sourcecdn/wiki /mnt/oss --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --daemon
这里的 oss
是rclone配置中节点的名称,public-sourcecdn
是oss的Bucket名称,wiki是Bucket的目录,/mnt/oss
是挂载到本地的目录。
可以看到,存储桶已挂载到 /mnt/oss 下:
root@debain:~ $ df -h
Filesystem Size Used Avail Use% Mounted on
udev 844M 0 844M 0% /dev
tmpfs 173M 1.1M 172M 1% /run
/dev/vda3 40G 7.4G 30G 20% /
/dev/vda2 189M 12M 177M 7% /boot/efi
oss:public-sourcecdn/wiki 1.0P 0 1.0P 0% /mnt/oss
若要取消挂载,执行以下命令即可:
fusermount -qzu /mnt/oss
开机自动挂载
以服务形式开机挂载
编辑 rclone-oss.service
文件:
sudo vim /etc/systemd/system/rclone-oss.service
填入以下内容(请根据实际情况修改 User 和 ExecStart 字段):
[Unit]
Description=rclone
[Service]
User=root
ExecStart=rclone mount oss:public-sourcecdn/wiki /mnt/oss --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
Restart=on-abort
[Install]
WantedBy=multi-user.target
保存并退出。
为确保配置生效,请重载配置文件:
sudo systemctl daemon-reload
启动 rclone 服务:
sudo systemctl start rclone-oss
设置开机自启:
sudo systemctl enable rclone-oss
其他命令:
sudo systemctl stop rclone-oss # 停止服务
sudo systemctl restart rclone-oss # 重启服务
sudo systemctl disable rclone-oss # 禁用开机自启
sudo systemctl status rclone-oss # 查看运行状
使用systemed.mount自动挂载
设置rclone 命令:
$ which rclone
/usr/bin/rclone
$ ln -s /usr/bin/rclone /sbin/mount.rclone
在 /etc/systemd/system/ 路径下创建 .mount 文件:
假设挂在路径为 /mnt/oss, 则文件名为 mnt-oss.mount 这里的文件名必须和挂载路径一致
[Unit]
After=network-online.target
[Mount]
Type=rclone
What=public-sourcecdn/wiki # oss的挂载目录bucket名称 + 目录
Where=/mnt/oss #挂载的本地目录
Options=rw,allow_other,args2env,vfs-cache-mode=writes,config=/root/.config/rclone/rclone.conf,cache-dir=/var/rclone
执行挂载命令:
# 重载配置文件
$ systemctl daemon-reload
$ systemctl start mnt-oss.mount
创建开机启动服务:
同路径下新增一个同名前缀,后缀automount的文件,例如mnt-oss.automount
[Unit]
After=network-online.target
Before=remote-fs.target
[Automount]
Where=<挂载路径> # /mnt/oss
TimeoutIdleSec=600
[Install]
WantedBy=multi-user.target
启动方式改为 systemctl start mnt-oss.automount
。
automount将会通过同名 mount 进行挂载,无需start .mount
systemctl enable mnt-mount.automount #开机自启