1. 情景 : 已经使用docke-compsoe 搭建起来nextcloud 并投入使用 ,现在内存不够需要挂一个oss
nextcloud挂载阿里云oss大概思路 : 使用阿里官方提供的 ossfs , 将oss挂载到服务器目录中 , 在docker-compose中的 做容器目录映射
docker-compose 部分参考 :
: ./nextcloud 为 ossfs挂载的服务器目录 , /var/www/html/data/ossfs 为容器目录
app:image: nextcloudports:- 8080:80links:- db:dbvolumes:- nextcloud:/var/www/html- ./nextcloud:/var/www/html/data/ossfsrestart: alwaysdepends_on:- db
第一步 ,安装ossfs :根据官方提供的文档去装就行 :如何安装ossfs_对象存储-阿里云帮助中心
遇到错误 : ossfs: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
重装 OpenSSL库 , 自行百度
第二步挂载服务器目录 :
ossfs my-bucket my-mount-point -ourl=my-oss-endpoint -ouid=33 -ogid=0 -oumask=007 -o allow_other
参考我的 :
ossfs my-bucket-photo /usr/local/temp/photoMange/nextcloud -ourl=oss-cn-hangzhou-internal.aliyuncs.com -ouid=33 -ogid=0 -oumask=007 -o allow_other
这时 如果没有问题的话 , 在阿里云oss中上传文件 或创建文件夹:
查看服务器本地 :
这时就已经成功挂载到服务器本地了 ,
第三步 : Nextcloud 中启用 External storage support 应用 ,添加路径 通过OSS存储数据 :
遇到的问题 : 1. 服务器本地目录映射成功(文件同步) , 服务器本地与容器不通 :
2. 解决上一个问题 后 , 能够在容器内使用打看到oss挂载目录的文件 , 但挂载后 , 上传文件 提示Forbidden 访问不到文件
ls -l /www/html/data/ 查看到文件ossfs 的user为root
在容器内修改用户属性 改为www-data:
chown www-data:root /var/www/html/data/ossfs
中间可能经历很多错误操作 , 基本重启大法 + chatGTP+反复检查 浪费时间颇多 如果问题 ,可联系我 ,希望帮到大家少踩坑