专业的编程技术博客社区

网站首页 > 博客文章 正文

Minio作为外部存储挂载到NextCloud并不理想

baijin 2024-09-27 06:49:30 博客文章 6 ℃ 0 评论

今天利用加班之余测试了将minio存储挂载到nextcloud作为外部存储,并不是很理想,先把这步骤记录下来,明天用另外一种方法。

安装mariadb数据库

使用docker安装mariadb数据库,给nextcloud使用。

先创建docker网桥

docker network create nextcloud-mysql-net

基于docker网桥创建数据库:

docker run -d --name mydb \
-v /home/DockerData/mysql/data:/var/lib/mysql \
-v /home/DockerData/mysql/conf:/etc/mysql \
-v /home/DockerData/mysql/logs:/var/log/mysql \
--net nextcloud-mysql-net \
--restart=always \
-p 12306:3306 \
-e MYSQL_ROOT_PASSWORD=***** \
mariadb

创建完数据库登陆数据库创建mycloud库和用户:

create database mycloud;
use mycloud;
grant all privileges on mycloud.* to mycloud identified by 'xxxxx';

安装nextcloud

同样用docker安装nextcloud,并配置数据库和初始化管理员用户:

docker run -d \
--name mycloud \
-v /nextcloud:/var/www/html \
-v /etc/localtime:/etc/localtime \
-p 80:80 \
--net nextcloud-mysql-net \
nextcloud

安装完成后,http://IP登陆nextcloud,设置mysql的用户名和密码以及数据库。

成功进入nextcloud首页:

添加外部存储

首先在minio控制台创建一个桶mycloud,并创建一个用户mycloud

网上很多教材指导要将桶设为public,其实不用设置,用private比较安全,只要将这个桶mycloud的读写删权限授权给mycloud就可以,如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::mycloud/*"
            ]
        }
    ]
}

然后将nextcloud的外部存储启用起来,原来默认是禁用的,把它设置为启用状态:

然后点击右上角,选择管理设置——>管理——>外部存储

这里比较坑的是外部存储有2个,一个在个人栏,一个在管理栏,应该选择管理这里的外部存储。设置完保存,验证通过,显示绿色就能连接上。

然后就可以在文件管理这里看到外部存储:

点击?号可以上传文件或文件夹


总结

通过外部存储挂载到nextcloud,没办法成为nextcloud的默认存储,不符合我的需求。而且所有人的都往同个bucket存文件,变成文件没有隔离,很不安全。所以这个方案pass掉,达不到预期。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表