This repository has been archived on 2023-11-13. You can view files and clone it, but cannot push or open issues or pull requests.
blog/_posts/2022-06-11-cloudreve.md
2023-06-03 15:58:09 +08:00

6.0 KiB
Raw Blame History

layout, title, subtitle, date, author, catalog, header-img, tags
layout title subtitle date author catalog header-img tags
post Cloudreve:超棒的网盘存储应用 Wow!!! 2022-06-11 21:16:37 Manford Fan false img/post-bg-universe.jpg
Cloudreve
Aria2
Onedrive
OD

5月28号晚上7点左右酒足饭饱之后准备刷《毛骗》突然接到值班的电话说有个线上客户COC过来一个故障单想让看下。其实我内心是拒绝的但是想到这个问题的处理能换来以后好多个Jira单emmmm忍了。拉了个群看了下问题是一个自建网盘使用CDN无法正常删除文件的问题一番沟通+测试下来,问题解决了,就是边缘不支持DELETE方法52预部署了一下配置了边缘NG直接DELETE回源即可解决问题。问题解决了然后我开始审视这个客户的应用用的是Cloudreve搭建倒是很简单引起我注意的是它下载的url域名并不是网盘域名而是世纪互联的OD存储的域名.......

然后就是跟这个客户的深入交谈,以及自己的实践了。

一、Cloudreve安装

Cloudreve是完全用Go语言开发的目前作者已经将其开源官方文档也提供了三种安装方式基本和之前的posts中提到的一样——源码二进制以及Docker。为了不在VPS安装过多的编译软件这里选择的是二进制文件用作者的话来说就是开箱即用

$ wget 'https://github.com/cloudreve/Cloudreve/releases/download/3.5.3/cloudreve_3.5.3_linux_amd64.tar.gz'
$ tar -xzf cloudreve_3.5.3_linux_amd64.tar.gz
$ ./cloudreve

运行cloudreve之后会出现如下截图所示的内容显示已经启动成功初始化的账号和密码也有给出该界面只显示一次如果没有记下来需要删除同目录文件夹下的cloudreve.db以及conf.ini文件重新运行。首次运行程序的时候数据库使用的是内置的SQLite如果想要修改数据库可以在删除cloudreve之后修改conf.ini文件添加自定义的mysql更换数据库之后之前的数据就都没有了需要重新运行cloudreve以获得初始账号密码。

cloudreve-install

二、优化配置

虽说开箱即用,也只是说该应用设计的非常人性化,可以让使用者很容易上手,想要更好的使用,还需要做一些配置。

1. NG反向代理

总不希望一直使用IP+port或者Domain+port的方式访问网盘所以还是和之前一样做一个反向代理

# =====================================================================
# cloudreve configuration
# =====================================================================
server {
    server_name pan.rustle.cc;
    listen 80;
    listen [::]:80;
    listen [::]:443 ssl http2;
    listen 443 ssl http2;
    charset utf-8;
    access_log logs/pan.access.log main;
    
    if ($scheme = http) {
        return 302 https://$host$request_uri;
    }

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

        client_max_body_size 20000m;
    }
}

2. 更换数据库

内置的SQLite数据库并不适用于生产环境虽然小破站算不上多重要也不愿意崩溃的时候无法恢复使用mysql,以后崩溃或者换站还可以备份恢复一下。

3. 配置Aria2离线下载

到目前为止我觉得这个离线下载功能挺鸡肋的可能是我没有找到合适的下载源吧因为我尝试下载PT以及迅雷链接都不能生效不过还是记录一下配置过程

  • step1: 安装aria2
  • step2: 根据文档配置在/etc/aria2/aria2c.conf文件中
  • step3: 配置cron服务开机启动—/usr/bin/aria2c --conf-path=/etc/aria2/aria2c.conf -D
  • step4: web页面配置离线下载并测试与主机通信是否畅通默认6800端口

4. 更换世纪互联Onedrive存储

和nextcloud遇到了一样的问题因为服务器是人家的带宽是人家的硬盘也是人家的钱包不够鼓呀上传和下载速度都非常捉急上传其实还好因为是BGP的线路从本地上传基本能达到1~3M如果是从其他VPS传输的话基本可以到15M左右但是服务器的硬盘容量有限下载就非常不能接受了6M的带宽跑满也就700K左右.....

最初是想用鹅厂家的COS来着速度也挺快新用户50G存储能白嫖6个月28号晚上试了一下上传下载都很快第二天醒来就受到了鹅厂的账单——0.03元拍了下脑门突然想起来下行流量是收费的虽然腾讯的COS和CVM或者CDN还是要花钱...)如果在同一个区域比如上海地区,就可以通过内网传输,上下行不计费,太麻烦了,劝退。

这个时候想起来昨天晚上那位兄弟说的他用的是世纪互联下行不计费相当于白嫖。我当时还没反应过来联想到之前使用onenote做笔记的痛苦经历以及想要解决问题时所做的努力终于想起来这个世纪互联是个什么东东了——微软在中国地区的存储代理商。于是悄咪咪的去某宝买了5T的空间根据Cloudreve配置页的提示信息配置上了虽然是非正规渠道本着用一年不亏用两年血赚的心态真香~

5. 配置systemd服务

为了更好的管理应用的启动和关闭systemd当然是最好的选择不得不说作者真的很贴心服务配置文件也给写好了,稍微修改一下就能用。

三、参考文档