Onedrive对接说明

启动Cloudreve任务队列

由于Onedrive策略上传方式为服务器中转,需要额外再服务器上运行一个任务处理进程。请确保您的Cloudreve版本大于或等于1.1.1。

进入Cloudreve后台管理面板 - 其他 - 任务队列;
点击随机生成Token,点击保存设置并复制下生成的64位Token备用;
根据你的操作系统版本和架构,到https://github.com/HFO4/CloudreveTaskQueue/releases 下载对应的Cloudreve任务队列处理程序;此处以64位Linux为例,下载taskqueue_X.X_linux_amd64.tar.gz并解压。注意:此程序后续会进行更新,请不要照搬以下命令中的下载链接

wget https://github.com/HFO4/CloudreveTaskQueue/releases/download/X.X/taskqueue_X.X_linux_amd64.tar.gz
tar -zxvf taskqueue_X.X_linux_amd64.tar.gz
  • 赋予执行权限
chmod +x ./taskqueue
  • 编辑conf.yaml文件,具体说明如下:
#第2步中生成的Token
token: SOME_THING_HARD_TO_GUESS
#格式为:您的站点地址/Queue
api: http://127.0.0.1/Queue
#启动的进程数量
taskNum: 4
#轮询间隔
Duration: 20
  • 启动任务队列
./taskqueue
  • 如果屏幕上打印出如下信息,则表示配置正确:
Cloudreve Queue Go Version 1.0
Author: AaronLiu <abslant@foxmail.com>
2018/10/20 18:27:29 [INFO] Config information:  {XXX https://XXX/Queue 4 1}
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
  • 使用nohupscreen 或其他方式使其在后台运行,一下步骤以screen为例:
screen
./taskqueue
Ctrl+A D

Windows下的步骤

对于Windows系统,从第3步开始,下载对应架构的zip包,按照第5步提示修改config.yaml,之后再CMD中启动taskqueue.exe即可

配置Onedrive上传策略

前往Cloudreve后台 - 上传策略 - 添加 - Onedrive
点击位于 应用 ID(Client ID) 一项左侧的超链接,跳转并登录微软账户创建应用。注意:如果你手动创建应用,请授权回调地址:您的网站/Admin/oneDriveCalllback
复制上一步微软给出的应用机密和应用ID,并填写到上传策略表单中
继续填写其他信息,点击“保存并继续”
跳转到Onedrive授权页后,登录你要用于存储的Onedrive账号(暂不支持国内世纪互联版),授权应用即可

Q&A

Onedrive策略哪些步骤是直传。那些需要经过服务器?
上传是经过服务器中转,下载不经过服务器。
Onedrive策略是否支持离线下载?
支持。
绑定账号时报错The reply uri specified in the request isn't using a secure scheme.
站点必须启用HTTPS,并在基本设置-站点URL中更改为正确的HTTPS链接,保存后重新点击添加上传策略页面中的链接创建应用并绑定账号

安装及初次使用FAQ

1.Composer安装Cloudreve时提示The requested PHP extension ext-XXX * is missing from your system

这是PHP扩展未达到要求所致,Cloudreve需要curl、fileinfo、gd扩展支持,请先安装并启用这些扩展。

2.安装成功后页面404/No input file specified.

URL重写规则未配置好,请检查。

3.安装后首页提示“遇到错误”

请依次检查:

  • application/database.php是否存在,如果不存在请手动创建写入数据库信息
  • runtime及其子目录是否有写入权限
  • 其他原因,编辑application/config.php打开debug模式,查看详细报错
    4.头像无法显示/本地策略图像无法预览

检查fileinfo扩展是否被安装并启用

5.本地存储策略文件上传到4mb时卡住5.本地存储策略文件上传到4mb时卡住

public/uploads/chunks目录没有写入权限,请分配写入权限

6.使用云存储策略时回调失败/获取的文件外链URL不对

依次检查:

  • 后台-设置-基本设置中的站点URL是否正确
  • 服务器时间是否正确
  • 有些服务器可能会将Authorization头自行解- 析掉,比如apache2,因此需要设置成不解析这个头部。以apache2为例,具体设置方法请参考 https://help.aliyun.com/document_detail/31927.html?spm=a2c4g.11186623.6.637.wPbiue
  • Cloudreve应用是否能被外网访问
    7.开启二步验证时的二维码无法显示

执行

composer require phpgangsta/googleauthenticator:dev-master
composer require endroid/qrcode

安装说明安装说明

  • 通过Composer安装
  • 通过Docker安装
  • 通过官网安装包安装

通过Composer安装通过Composer安装

1.安装Composer

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

详细安装说明请参阅http://docs.phpcomposer.com/00-intro.html

2. 使用Composer安装Cloudreve

#安装开发版
$ composer create-project hfo4/cloudreve:dev-master
#等待安装依赖库后,会自动执行安装脚本,按照提示输入数据库账户信息
   ___ _                 _                    
  / __\ | ___  _   _  __| |_ __ _____   _____ 
 / /  | |/ _ \| | | |/ _` | '__/ _ \ \ / / _ \
/ /___| | (_) | |_| | (_| | | |  __/\ V /  __/
\____/|_|\___/ \__,_|\__,_|_|  \___| \_/ \___|
        
                Ver XX
================================================
#按提示输入信息
......
#出现如下提示表示安装完成
Congratulations! Cloudreve has been installed successfully.

Here's some informatioin about yor Cloudreve:
Homepage: https://pan.aoaoao.me/
Admin Panel: https://pan.aoaoao.me/Admin
Default username: admin@cloudreve.org
Default password: admin

3. 目录权限

runtime目录需要写入权限,如果你使用本地存储,public 目录也需要有写入权限

4. URL重写

对于Apache服务器,请确保

httpd.conf配置文件中加载mod_rewrite.so模块
AllowOverride None None改为 All`
项目目录下的.htaccess已经配置好重写规则,如有需求酌情修改.

对于Nginx服务器,以下是一个可供参考的配置:

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

如果你的应用安装在二级目录,Nginx的伪静态方法设置如下,其中youdomain是所在的目录名称。

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

5.后续操作5.后续操作

到此步时,系统已基本可以正常运行,但还需要进行一些后续操作.

  • 登录后台(初始用户名admin@cloudreve.org 初始密码 admin 后台URlhttp://你的域名/Admin,登录后到设置 - 基本设置中检查站点URL是否正确)
  • 到用户管理页修改初始用户密码
  • 如果你需要使用二步验证功能,请在程序目录下依次执行composer require phpgangsta/googleauthenticator:dev-master composer require endroid/qrcode安装二步验证扩展
  • 添加Cron定时任务
* * * * * curl http://你的域名/Cron
  • 如果你打算使用本地上传策略并且不准备开启外链功能,请将public/uploads目录设置为禁止外部访问、禁止脚本执行

通过Docker安装

你可以使用由 @ilemonrain 维护的Docker镜像:
https://hub.docker.com/r/ilemonrain/cloudreve/

通过官网安装包安装

1. 获取安装包

https://cloudreve.org/download.php 下载最新的安装包

2.导入数据库

前往 您的域名/CloudreveInstaller 的安装向导,根据提示检查环境、填写数据库信息并执行安装。

获取帮助

安装过程中和安装后初次使用遇到的问题请参阅:

离线下载对接说明

Cloudreve的离线下载功能是基于Aria2实现的,在启用离线下载功能前,请先在服务器上安装Aria2。具体流程可参考网络,在此不再赘述。

1.使用配置文件启动Aria2

新建aria2.conf,在此文件中根据你的需求填写aria2的相关配置,其中需要特别注意的几项是:

#是否启用RPC服务,请设置为true
enable-rpc=true
#RPC服务的端口,默认为6800
rpc-listen-port=6800
#设置PRC服务的密钥,在接下来的步骤中会用到
rpc-secret=SomeThingHardToGuess
保存后使用此配置文件启动aria2服务:

#/home/aria2.conf为配置文件路径
aria2c.exe -conf-path=/home/aria2.conf

2.配置离线下载

Cloudreve后台的离线下载配置页,按照提示填写各项配置

常见问题及注意事项

注意:

  • 如果需要终止aria2进程,请确保所有离线下载任务已完成或被取消。如果需要强制终止,请不要忘记删除aria2创建的session文件中留下的记录,或者将下载创建的临时文件删除以避免下次启动时发生冲突。
  • bt下载可能需要你手动在配置文件中填写tracker服务器以获得更佳的下载速度
  • 请添加cron定时任务,系统每隔半分钟会刷新所有进行中任务的状态,你可以在后台-其他-定时任务中更改此间隔
    常见问题:
  1. 离线下载容量配额如何处理?
    下载开始时系统不会对容量进行检查。当aria2成功获取到文件大小,并且被Cloudreve获取到状态时,系统会检查用户是否可以下载此文件,如果容量不足,系统会强行终止任务;如果任务文件的大小无法被获取,系统会实时检查已下载内容大小,并在任务完成时检查容量;如果正在进行中的任务已经超出容量配额,用户将不能再创建新任务。
  2. 无法创建离线下载任务?
    根据错误提示,如果提示为请求失败请检查aria2及其RPC服务是否启动,配置信息是否正确。如果为其他提示,请参阅aria2文档排查原因。
  3. 下载完成后文件管理器中未出现文件,日志中提示Permission denied
    请以和php进程相同的用户身份启动aria2,并且确保php拥有对下载文件目录的读写权限。或者使用https://forum.cloudreve.org/d/168 的解决方案

启用Sendfile下载支持

启用sendfile模式后,可大大降低用户下载文件时服务端的压力,目前本功能仅对本地类型策略有效。使用前请先在后台-设置-杂项中启用X-Sendfile传输模式,并根据你使用的服务器软件选择正确的Header,并更改服务器配置:

ApacheApache

https://www.apachelounge.com/download/

  1. 下载并安装mod_xsendfile
  2. 在站点配置文件中加载并启用模块:
LoadModule xsendfile_module modules/mod_xsendfile.so
XSendFile On 
XSendFileAllowAbove On

注:如果下载下载的文件为空文件,则说明后台Sendfile Header选项 选择有误。若

Nginx

在站点配置文件中添加

location /protected_files {
    internal;
    #此处为public/uploads目录的绝对路径
    alias  /home/wwwroot/file.cloudreve.org/public/uploads/;
}

远程存储服务端搭建

你可以使用远程存储策略将文件存放在其他(不同于Cloudreve所在的)服务器上,但在此之前,你需要手动搭建远程服务端。

远程服务端搭建

以下操作均在远程服务端(即存放文件的服务器)上进行。

  • 克隆代码
git clone https://github.com/HFO4/cloudreve-remote-server.git
cd cloudreve-remote-server
  • 填写配置文件
vim config.php

ACCESS_KEY的值更改为与Cloudreve后台添加远程上传策略时系统随机生成的AccessToken,保存。

权限
chunks、uploads、tuhmbs赋予读写权限,同时为了安全考虑,可将uploads目录配置为禁止执行PHP脚本、禁止直接访问。

添加远程上传策略

  • 进入后台-上传策略-远程服务器
  • 默认已生成随机AccessToken,可复制填入远程服务端的config.php
  • “服务端URL”即为远程服务端程序所在目录的url,比如'https://yourdomain.com/server/'
  • 保存并绑定用户组测试上传

常见问题

上传大文件提示 “分片缓冲区已满,请等待系统回收”

手动清理chunks下的文件即可

上传文件提示“文件转移失败”

检查chunks、uploads目录是否有写入权限

其他问题诸如HTTP错误等

请参考https://forum.cloudreve.org/d/17

最后修改:2020 年 03 月 26 日 01 : 50 PM