另一款多用户网盘程序,对接OneDrive-Cloudreve

By | 2020年3月14日

国内外的网盘程序都有很多,比如Nextcloud、BeDrive、H5ai、Filerun、Kodexplorer、DzzOffice、Oneindex等等,它们各有各自的特色。
Cloudreve可以把文件储存在服务器本地,也可以对接阿里云存储、又拍云存储、OneDrive等,本文记录搭建Cloudreve和对接OneDrive的过程。
本文环境:
CentOS 7 64
PHP 7.3
MySQL 5.5
Apache
演示网站:
https://files.softs.ltd

Cloudreve V2版本安装过程:
1、最直接的方法,是去Cloudreve网站下载完整安装包,上传到服务器WEB环境,解压,然后导入根目录的mysql.sql到数据库。
2、浏览器访问https://你的网站/CloudreveInstaller进行安装,查看系统环境和配置数据库信息等,按提示操作即可:






安装完成后,进入后台修改默认密码,默认账户无法在后台修改,需要在数据库里进行修改。
如果是使用nginx,在安装之前需要先设置好伪静态:

location / {
   if (!-e $request_filename) {
   rewrite  ^(.*)$  /index.php?s=/$1  last;
   break;
    }
 }

然后再访问https://你的网站/CloudreveInstaller进行安装。
安装完成后,记得先去后台管理面板-设置-基础设置,修改站点URL为你网站地址,否则后面OneDrive授权会不成功。
3、对接OneDrive。浏览器打开微软授权网址:点击跳转,登录后点击新注册按钮,填上你的信息,URI地址为:https://你的网站/Admin/oneDriveCalllback,此处一定要是https,否则后面会出错,注册后获取应用ID和秘钥。然后点击Cloudreve管理面板-上传策略-添加,点击添加OneDrive,将刚才获得的应用ID和秘钥填好,保存后进行授权即可。

4、配置上传计划任务。点击Cloudreve管理面板-其他-任务队列,点击随机生成Token,然后点保存设置,复制此Token备用。接着SSH连接服务器,根据自己的服务器环境,下载任务处理程序,下载地址:https://github.com/HFO4/CloudreveTaskQueue/releases。本文服务器系统是Linux 64位,可执行以下命令:

wget https://github.com/cloudreve/taskqueue/releases/download/1.1/taskqueue_1.1_linux_amd64.tar.gz
tar -zxvf taskqueue_1.1_linux_amd64.tar.gz
chmod +x ./taskqueue

接着编辑conf.yaml文件:

#输入刚才生成的Token
token: SOME_THING_HARD_TO_GUESS
#格式为:您的站点地址/Queue
api: https://files.softs.ltd/Queue
#启动的进程数量
taskNum: 4
#轮询间隔
Duration: 20

接着执行任务:

yum install screen -y
screen -S taskqueue
./taskqueue
Ctrl+A
Ctrl+D

上面过程中出现以下信息即为已正常启动:

Cloudreve Queue Go Version 1.0
Author: AaronLiu 

2018/10/20 18:27:29 [INFO] Config information:  {XXX https://XXX/Queue 4 20}
2018/10/20 18:27:29 [INFO] Basic Info:  {"basePath":"XXX"}
2018/10/20 18:27:29 [Info] Thread 1 start
2018/10/20 18:27:30 [Info] Thread 2 start
2018/10/20 18:27:31 [Info] Thread 3 start
2018/10/20 18:27:32 [Info] Thread 4 start

最后用cd命令进入网站根目录,启动队列任务:

cd /www/xxxx网站的根目录
screen -S cloudrevetask
php task run
Ctrl+A
Ctrl+D

上面过程,会看到Cloudreve tasks processor started,即任务启动成功。
5、配置后台计划任务。SSH连接服务器执行以下命令:

crontab -e

添加上:

* * * * * curl https://files.softs.ltd/Cron

保存退出,至此,已完成Cloudreve的搭建和对接OneDrive了。
6、配置Aria2离线下载。执行以下命令:

yum install aria2 -y
mkdir /etc/aria2/
vim /etc/aria2/aria2.conf

添加以下内容,按需修改:

#设置加密的密钥,在Cloudreve内RPC Token需要用到
rpc-secret=lianghg.com
#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#允许外部访问,false的话只监听本地端口
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
rpc-listen-port=6800
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=5
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=5
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=10
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#文件保存路径, 可设置为Cloudreve的public目录,按需修改,所有者www,权限777
dir=/www/wwwroot/xxxxx/public/downloads
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用
#disk-cache=0
#另一种Linux文件缓存方式
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
file-allocation=prealloc
#用于解决Aria2与Cloudreve系统对接的权限问题,hook.sh文件位置可自定义
on-download-complete=/home/cloudreve/hook.sh

保存退出后,编辑/home/cloudreve/hook.sh文件,添加以下内容,路径按需修改:

#!/bin/sh
chmod -R 777 /www/wwwroot/xxxxx/public/downloads

接着执行以下命令后台启动Aria2:

aria2c --conf-path=/etc/aria2/aria2.conf -D

最后,去Cloudreve管理面板-离线下载,填上上面设置的RPC Token和下载目录,保存即可。

Cloudreve V3版本安装过程:
1、下载最新版本:点击跳转,解压后得到一个cloudreve文件。V3默认使用SQLite数据库,如果需要使用MySQL数据库,可以在根目录下生成conf.ini文件,然后添加以下信息,按需修改:

[Database]
; 数据库类型,目前支持 sqlite | mysql
Type = mysql
; 用户名
User = root
; 密码
Password = root
; 数据库地址
Host = 127.0.0.1
; 数据库名称
Name = root
; 数据表前缀
TablePrefix = cr_

接着执行以下命令启动:

chmod +x ./cloudreve
screen -S cloudreve
./cloudreve
Ctrl+A
Ctrl+D

启动后会生成管理员密码,默认的管理员账号可以在数据库里修改,默认使用5212端口,http://ip地址:5212即可访问,如果用域名访问,设置一下反代就行了。
2、对接OneDrive。浏览器打开微软授权网址:点击跳转,登录后点击新注册按钮,填上你的信息,URI地址为:https://你的网址/api/v3/callback/onedrive/auth,获取应用ID和密钥,在Cloudreve内填上验证即可。
3、V3版本不需要配置上传任务计划,如果需要使用离线下载功能,按照V2版本安装步骤第6步进行Aria2安装设置就可以了。

另外,如果要关闭Cloudreve进程,直接关闭screen任务就行了:

screen -ls
screen -S session_name -X quit

本文参考于程序作者官网@Cloudreve.

发表评论