0
点赞
收藏
分享

微信扫一扫

群晖NAS挂载AWS S3存储桶

前言

NAS上本身有很多备份同步套件,云存储用的比较多的是cloud sync,如图,支持多家厂商的云存储同步备份

[cloud sync套件](https://s2.51cto.com/images/202304/e55ae77638eedf0dedc620be491d61f141a136.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=,x-oss-process=image/resize,m_fixed,w_1184)

但cloud sync存在一些局限性,比如本地删除后云端会同步删除(这个应该可以设置单向备份),另外不能随时进行恢复。从而会导致NAS上的数据越来越多,磁盘也越来越满。。。

如果想要只备份到S3上,NAS上不保存数据,而且需要随时恢复文件的话,可以考虑另一种方式:rclone

在NAS上有两种方式使用rclone:

  • 通过docker创建rclonebrowser镜像
  • ssh登录nas后台直接使用rclone

群晖NAS使用rclone

通过docker创建rclonebrowser容器

关于docker的使用就不在此概述了,网上资源很多,本人掌握的也比较浅,有描述不对的也请指正。

创建容器并配置参数

  1. NAS—套件中心—Dokcer

群晖NAS挂载AWS S3存储桶_rclone

  1. 注册表里搜索rclone,我这里使用的是romancin/rclonebrowser,选latest最新版就好。rclonebrowser是带web界面的。
    其他两个我都试了,启动不成功,不知道是不是配置参数错了,就不深究了。。。

群晖NAS挂载AWS S3存储桶_rclone_02

  1. 下载完成后在映像里启动。点击高级设置,设置映射的文件夹

群晖NAS挂载AWS S3存储桶_rclone_03

端口可以保持默认,5800和5900,如果与NAS本机有冲突,需要选择其他端口。我这里用的是5802和5902

群晖NAS挂载AWS S3存储桶_NAS_04

添加环境变量,TZ:Asia/Shanghai,其余可以保持不动

群晖NAS挂载AWS S3存储桶_S3存储_05

点击完成,启动即可

群晖NAS挂载AWS S3存储桶_S3存储_06

配置rclone

容器启动后需要配置rclone的参数的,这里涉及到一个配置文件,rclone.conf,可以从其他地方拷贝至/docker/test2/config/xdg/config/rclone,这是我的配置路径,不要完全复制了。

另外可以通过命令行创建配置文件。

拷贝配置文件

这是我的配置文件,可以新建一个rclone.conf文件,然后把以下内容复制进去,修改成自己的,再拷贝到配置文件夹下就可以了

[test]
type = s3
provider = AWS
access_key_id = xxxxxxxxxxxxxxxxxxxxxxxxx
secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxx
region = cn-northwest-1
storage_class = STANDARD
acl = private

通过命令行创建配置文件

容器原有的终端是不能敲命令的,只能新建一个窗口。

终端机—新增 以命令行启动—sh,使用sh shell

群晖NAS挂载AWS S3存储桶_S3存储_07

群晖NAS挂载AWS S3存储桶_S3存储_08

执行rclone config

群晖NAS挂载AWS S3存储桶_rclone_09

我这里已经有一个配置文件,可以输入n新建一个配置文件,然后根据提示输入对应选项就可以了

以上是通过web界面创建docker容器,还可以通过命令行创建,以下是配置命令,大家根据具体情况进行替换

docker run -d --name=rclonebrowsertest2 \
--cap-add SYS_ADMIN \
--device /dev/fuse \
--security-opt apparmor=unconfined \
-p 5802:5800 \
-p 5902:5900 \
-v /volume1/docker/test2/config:/config \
-v /volume1/docker/test2/media:/media:shared \
-e GROUP_ID=0 \
-e USER_ID=0 \
-e TZ=Asia/Shanghai \
-e VNC_PASSWORD=123456 \
-e ENABLE_CJK_FONT=1 \
romancin/rclonebrowser:latest

rclonebrowser配置完成后可以通过web界面访问,IP是NAS的IP,端口则是我们配置的映射端口5802。不过还是习惯用命令行,web的操作就不在此概述了,操作起来也很简单,就是点点点。但通过web挂载的话不能手动选择bucket桶,会导致挂载失败。

群晖NAS挂载AWS S3存储桶_NAS_10

在群晖后台使用rclone

群晖底层是ubuntu的定制开发系统,不支持dpkg包管理器。但是可以到rclone官网下载包,解压后直接使用。

登录到nas后台,需要先在web界面把ssh打开,并sudo -i提权到root权限

群晖NAS挂载AWS S3存储桶_S3存储_11

在rclone官网Rclone downloads,复制下载链接

群晖NAS挂载AWS S3存储桶_NAS_12

weget https://downloads.rclone.org/v1.62.2/rclone-v1.62.2-linux-amd64.zip

将安装包下载到/opt文件夹下

需要将压缩包解压,群晖NAS本身不支持unzip命令,但可以用7z命令

7z e rclone-v1.62.2-linux-amd64.zip

解压后将rclone拷贝到/bin目录下就可以直接使用了

cp rclone /bin

群晖NAS挂载AWS S3存储桶_S3存储_13

一样的,敲rclone config可以新建配置文件

群晖NAS挂载AWS S3存储桶_NAS_14

也可以拷贝配置文件,路径是/root/.config/rclone/rclone.conf

群晖NAS挂载AWS S3存储桶_S3存储_15

挂载S3存储桶作为NAS本地文件夹

配置完后我们可以测试一下是否连接成功

rclone lsd remote:
#查看S3中所有桶

rclone lsd remote:bucket
#查看S3某个桶中的所有目录

我这里查看S3桶报403了,但是查看桶中所有目录是OK的,估计是权限问题

群晖NAS挂载AWS S3存储桶_NAS_16

连接成功后即可开始挂载了

rclone mount test:xxx-xxx-nas/dev/IT /media --copy-links --allow-other --allow-non-empty --umask 000 -vv --log-file=/
tmp/debug.log

这是我的挂载命令,remote和bucket的名称大家自行修改。挂载完之后在NAS中已经可以看到S3里的文件

群晖NAS挂载AWS S3存储桶_S3存储_17

挂载成功后便可下载,删除,S3桶里的文件了。有小伙伴会问了,没有上传或新增吗,是可以的,但貌似只能通过命令执行,通过GUI会报错,如下:

通过命令行成功

群晖NAS挂载AWS S3存储桶_NAS_18

通过GUI界面报错

群晖NAS挂载AWS S3存储桶_S3存储_19

日志里会提示找不到这个文件或文件夹

群晖NAS挂载AWS S3存储桶_S3存储_20

所以这就很操蛋了,折腾了很久....无解。google里有很多说这个Bug的,guthub上也有人提了,无奈。。。不折腾了,具体大家可以去看看

https://github.com/rclone/rclone/issues/4046

群晖NAS挂载AWS S3存储桶_S3存储_21

总结

群晖NAS可以成功挂载S3到本地文件夹,但是上传/新增功能有限,对于小白来说可能稍显困难。其他厂商的配置应该大同小异。有问题的各位友友们可以留言,看到会及时解答。

本人技术能力有限,如果文中有描述错误的,请及时指正,谢谢。

举报

相关推荐

0 条评论