nextcloud挂载本地文件夹问题

7 3.9~5.0 分钟 1748

上一篇关于nextcloud的文章里我介绍了如何挂载外部硬盘,这两天根据自己的需求继续折腾挂载外部硬盘,又碰到一些有意思的情况,记录一下。

先介绍一下我的情况

我是使用docker compose部署的nextcloud,为了运行速度,我的所有docker容器都是运行在一个ssd组成的存储池里,数据也都在,缺点是容量较小。

而我最近想将公司一些已完成项目的归档备份回家。

作为网盘使用的那一部分容量不超过100G,还是继续在ssd这个存储池里,公司备份的文件比较大,需要存放在其他存储池。

第一个坑

先搞清楚nextcloud的文件夹结构,nextcloud部署完成后的“全部文件”我们假定为根目录,如果你需要将几个同步文件夹做完全的区分的话,从这里就要开始区分了,假如我的同步网盘为drive ,而我的备份资料为备份,那么首先就要在全部文件下建一个drive 文件夹和一个备份文件夹。

如前所述,我的备份文件夹准备挂载本地其他文件夹,所以这里的备份文件夹不是直接创建的,而是挂载的,如果你没这个问题,直接创建就行。

此时文件夹结构如下:

在我公司的电脑上设置同步文件夹,例如A文件夹drive同步;B文件夹备份同步,这样就达到了我的目的,文件夹之间互不干扰,不会套娃。

正式开始

1. 映射容器内文件夹

使用docker compose安装nextcloud,要挂载本地文件夹是不可以直接挂载物理机上的文件夹的,要先将文件夹映射到容器,所以在compose文件里添加好要映射的文件夹:

volumes:
      - /volume3/backup:/var/www/html/data/xxxx/files/备份

冒号前是物理机要挂载的位置,冒号后是容器内的位置,可以跟我上面表示的不一样,我上面这个描述就是在用户xxxx“全部文件”下映射一个备份目录。

2. nextcloud挂载本地文件夹

在“管理设置”下点击“外部存储”菜单,点击“添加外部存储”,如下图

存储位置选择容器内部的绝对位置。

3. 启用外部存储

上一步是在管理设置菜单下挂载的,实际上直接在个人菜单下挂载也行,管理菜单下挂载相当于系统级别的,如果有其他用户的话也能看到这个外部文件夹,如果只有自己一个人用直接在个人菜单下挂载也可以。

到个人菜单下点击“外部存储”,会出现刚才挂载的文件夹,点击前面那个符号,如果中间出现了一个“√”就表示已连接,没问题了,这一步不必要,只是确认一下,因为下面就要出现问题了。

问题来了

上面挂在好文件夹后回到“全部文件”页面,这时候刚挂载好的文件夹就已经出现了,但是我遇到的问题是,这个文件夹无法打开,实际上我挂载的并非空文件夹,所以我非常确定是出问题了。

问题也很简单,就是新挂载的文件夹没有相应的权限。

解决也很简单,在nextcloud容器的菜单里找到“终端”,创建一个bash终端,然后依次输入下面的命令就行了。

chown -R www-data:www-data /var/www/html/data/xxxx/files/备份
sudo chmod -R 775 /var/www/html/data/xxxx/files/备份

上述命令后面的路径为挂载文件夹容器内的绝对路径。

结束撒花

nextcloud对于我来说太复杂了,许多根本用不着的功能,尤其是团队协作的部分,我也在尝试禁用一部分功能,目前还没遇到什么问题,在这个过程中曾经一度想虚拟机运行个群晖算球😀😀😀