跳至正文

ECS搭建个人网盘

内容目录

ECS搭建个人网盘

本文档主要介绍ECS实例搭建网盘相关安装以及配置,配置中涵盖使用挂载oss搭建网盘以及nginx反向代理等内容

Cloudreve概述

Cloudreve 是一款开源的云存储管理系统,允许轻松地构建私人云存储服务。Cloudreve 提供了类似于 Google Drive 或 Dropbox 的功能,但可以将其部署在自己的服务器上,完全掌握数据的控制权。

Cloudreve 具有以下一些主要功能:

  1. 文件管理:你可以上传、下载和管理文件,创建文件夹,以及进行文件共享。

  2. 用户管理:可以创建多个用户账户,并设置不同的权限,以控制用户对文件的访问和操作权限。

  3. 链接分享:可以生成公开或私密的链接,方便与他人分享文件或文件夹。

  4. 图像预览:支持图像文件的预览,方便查看图片内容。

  5. 在线播放:支持多种音视频格式的在线播放,不需要下载即可直接在浏览器中观看。

  6. 安全性:提供了一系列安全性功能,包括登录验证、数据加密传输等,确保用户数据的安全性。

  7. 多种存储后端支持:支持多种存储后端,包括本地存储、FTP、OneDrive、七牛云等,方便用户根据自己的需求选择适合的存储方式。

Cloudreve 是一个功能丰富、易于使用的云存储管理系统,适用于个人用户或小团队,可以帮助他们构建自己的私人云存储服务,实现数据管理和共享的需求。

Cloudreve安装

前往指定目录,并下载cloudreve安装包

建议放置在/opt下,此目录存放可选的附加软件的安装目录。一些第三方软件或者自行编译的软件可以安装到这个目录下

mkdir /opt/cloudreve
cd /opt/cloudreve
wget https://github.com/cloudreve/Cloudreve/releases/download/3.8.3/cloudreve_3.8.3_linux_amd64.tar.gz

如果连接不上github,此处可使用自己的源,中国内地均适用

wget https://williamsfile.oss-cn-shanghai.aliyuncs.com/app/cloudreve_3.8.3_linux_amd64.tar.gz

解压

tar -zxvf cloudreve_3.8.3_linux_amd64.tar.gz

执行以下命令,授予其权限

chmod +x ./cloudreve

运行cloudreve

./cloudreve
[root@iZuf6bk3ycdczx5tq96ms1Z cloudreve]# ./cloudreve

   ___ _                 _                    
  / __\ | ___  _   _  __| |_ __ _____   _____ 
 / /  | |/ _ \| | | |/ _  | '__/ _ \ \ / / _ \
/ /___| | (_) | |_| | (_| | | |  __/\ V /  __/
\____/|_|\___/ \__,_|\__,_|_|  \___| \_/ \___|

   V3.8.3  Commit #88409cc  Pro=false
================================================

[Info]    2024-02-20 12:07:59 Initializing database connection...
[Info]    2024-02-20 12:07:59 Start initializing database schema...
[Info]    2024-02-20 12:08:00 Admin user name: admin@cloudreve.org
[Info]    2024-02-20 12:08:00 Admin password: randomadminpasspwd
[Info]    2024-02-20 12:08:00 Start executing database script "UpgradeTo3.4.0".
[Info]    2024-02-20 12:08:00 Finish initializing database schema.
[Info]    2024-02-20 12:08:00 Initialize task queue with WorkerNum = 10
[Info]    2024-02-20 12:08:00 Initialize crontab jobs...
[Info]    2024-02-20 12:08:00 Current running mode: Master.
[Info]    2024-02-20 12:08:00 Listening to ":5212"

可知程序监听5212端口,则在安全组中放行5212端口,使得能够正确转发给cloudreve

应用 端口号
cloudreve

可通过http://公网ip:5212访问cloudreve网页程序

image-20240220121507755

输入生成的用户名和密码即可登录

自此cloudreve安装完成

除管理员账号以外,建议创建自己的“用户账号”,不建议直接使用管理员账号

可以注册或“管理面板”中“用户”页面新增

cloudreve配置

ecs挂载oss搭建云盘

此处使用挂载的oss作为云盘,进行配置,请确保已将oss挂载于ECS实例上

挂载oss可以较大程度节省ECS空间费用,同时内网访问oss可以不产生外网流量,降低访问oss的流量费用

使用管理员账号登录cloudreve后,进入“管理面板”,

  • 若弹出站点URL设置框,则选择更改

后续进入“存储策略”页面,“添加存储策略”,选择“本机存储”即将使用挂载的oss,

存储目录设置为oss挂载点,如:/mnt/oss/cloudreve/{uid}/{path} (/mnt/oss 为挂载点)

后续可自由设置

然后前往“用户组”,自由设置即可

后台运行等配置

以systemd方式配置后台运行,开机自启动等

创建cloudreve.service文件

vim /usr/lib/systemd/system/cloudreve.service

填写内容如下:

[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
Wants=network.target

[Service]
Type=simple
WorkingDirectory=/opt/cloudreve/
ExecStart=/opt/cloudreve/cloudreve
Restart=on-abnormal
RestartSec=3s
KillMode=mixed

StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target

编辑完成后,执行以下命令更新systemctl配置

systemctl daemon-reload

后续便可以使用以下命令调整cloudreve设置

# 启动服务
systemctl start cloudreve

# 设置开机启动
systemctl enable cloudreve

# 停止服务
systemctl stop cloudreve

# 重启服务
systemctl restart cloudreve

# 查看状态
systemctl status cloudreve

nginx反向代理

此处是希望不使用端口号来访问cloudreve以更简洁一些,

在nginx配置中server块加入以下配置,即可实现通过ip访问由nginx反向代理转发至cloudreve所在端口使用cloudreve服务功能

location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://127.0.0.1:5212;

    # 如果您要使用本地存储策略,请将下一行注释符删除,并更改大小为理论最大文件尺寸
    #client_max_body_size 1024m;
}

上述为官方提供参考配置,原先希望通过ip/cloudreve 方式访问,但配置后在后续获取js,css等资源时出现未能成功转发的情况,

是后续请求中都丢失了端口号,均使用ip通过80端口获取资源而非5212端口获取资源,可能的解决办法有:

  1. 完善nginx配置,使后续对这类资源的访问能够转发到5212端口,但建立完善的代理规则可能比较困难,考虑到未来其它应用的拓展
  2. 将程序中路径设置为绝对路径,避免出现路径问题,但会带来访问速度下降,以及全局修改难等问题
  3. 此外也尝试补全一些参数,但效果不明显

虽然可以通过补全一些nginx配置,使得访问cloudreve资源时转发到5212端口,但考虑到未来其他应用拓展亦可能需访问动态资源,改采用二级域名的方式访问cloudreve

server
{
    listen 80;
    server_name pan.williamshen.cn;

    location / {
        proxy_pass http://127.0.0.1:5212;

        # 如果您要使用本地存储策略,请将下一行注释符删除,并更改大小为理论最大文件尺寸
        client_max_body_size 1024m;
    }
}

参考文章

  1. 【云存储】使用OSS快速搭建个人网盘教程(阿里云) https://blog.csdn.net/weixin_48701521/article/details/132026512
  2. 使用ECS和OSS搭建个人网盘 https://developer.aliyun.com/article/1328886
  3. cloudreve私有云盘配置后台运行 https://blog.csdn.net/longzhoufeng/article/details/108958091