来源:初行博客
今天介绍的是来自国内开发者写的一个基于对象存储的公私兼备的网盘系统。由aoaoao.me的作者所写,这位作者最著名的项目就是树洞外链(https://github.com/HFO4/shudong-share),功能强大也好看,相信对这方面有点研究的都用过他的东西,后来免费版没再更新有些可惜。沉寂了很久作者终于放出一个大招——Cloudreve。项目已经发布一个月了,博主一直在摸鱼偷懒就没写,抢首发大失败,今天就抽空补上吧!
一、程序介绍
Github开源:https://github.com/HFO4/Cloudreve
Telegram社群:https://t.me/joinchat/ChJY90fAOmaJNRROZxCXRQ
功能介绍:
毕竟是国内开发者所写,功能就是接地气,不管是基础的功能还是对接对象存储对于国内用户很方便。老外写的网盘系统即使可以对接对象存储,但是什么AWS S3啊、GDrive,速度不快,计费不清楚,英文文档部分人接触困难,所以使用方面还是有坑的。让人家去为了你对接阿里云、七牛专门写一个又不现实。国内开发的对接国内服务商的对象存储服务就方便快捷很多,何况对象存储成本越来越低,比直接购买服务器成本低很多。
对象存储目前著名的就是阿里云OSS、腾讯云COS、七牛、又拍云等,价格也非常低,例如腾讯云赠送50GB COS空间,七牛http有一定的免费额度,又拍也一样,阿里云的OSS在赶上活动的时候几毛钱就能买到两年时长的40GB的存储空间。这些大厂首先就是安全速度快,国内无论如何都有无可比拟的速度优势,大厂也不容易跑路,你选个容易翻车的VPS或者服务器说不定哪天就挂了,小厂oneman容易跑,大厂又贵也不一定有合适的机房。搭建一个程序基本需要512-1GB的内存,20G以上的空间,稳定的都得需要每个月5USD以上,独服就更别说了。国内服务商目前提供的免费额度已经足够个人使用,如果你是中小企业或者大流量的现在对象存储的价格都非常低,综合成本不高,甚至每个月几块钱到几十块钱就可以做到超大容量和流量的存储。
二、程序安装
作者首发第一版是需要安装Composer来安装的,但是可能有BUG或坑比较多,对于普通用户来说安装体验不友好,作者又重新打包了一个完整包,不用安装Composer扩展了。本文以Oneinstack为例,LNMP环境,同时也支持Apache。
(1)在搭建好LNMP环境后新建主机和普通建站一样即可,推荐使用oneinstack的addons扩展,安装fileinfo组件,也推荐上SSL。如果不懂composer扩展oneinstack也提供了一键安装。
(2)首先到官方网站下载:http://cloudreve.org/download.php
(3)将根目录下的“mysql.sql”导入到你的数据库,编辑application/database_sample.php文件,填写数据库信息,并重命名为database.php。
(4)上传安装包到服务器
(5)runtime目录需要写入权限,如果你使用本地存储,public 目录也需要有写入权限,给他们权限,755权限即可。
(6)设置URL重写:
httpd.conf配置文件中加载了mod_rewrite.so模块,AllowOverride None 将None改为All,项目目录下的.htaccess已经配置好重写规则,如有需求酌情修改。
对于Nginx服务器,以下是一个可供参考的配置:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
(7)登录后台,后台URL:http://你的域名/Admin(初始用户名admin@cloudreve.org,初始密码 admin ,登录后到设置 – 基本设置中检查站点URL是否正确)
(8)到用户管理页修改初始用户密码
(9)如果你需要使用二步验证功能,请在程序目录下依次执行composer require phpgangsta/googleauthenticator:dev-master composer require endroid/qr-code 安装二步验证扩展
(10)添加Cron定时任务:
* * * * * curl http://你的域名/Cron
(11)如果你打算使用本地上传策略并且不准备开启外链功能,请将public/uploads目录设置为禁止外部访问、禁止脚本执行
至此,安装工作已完成。
三、程序使用
(1)用户界面
首先访问一下用户后台页面,可以直接查看所有文件。基础的上传、新建文件夹、搜索等都在右上角的四个按钮里。
基础的使用操作,下载、分享、删除等,对于常用的图片、音视频都能预览。
个人主页,可以查看最热门的分享。
可以搜索你分享的文件,以免太多找不到。
还有图片集可以作为一个简单的图片集合查看器,不过因为里面没图所以我就没截图。
安装两步验证扩展可以实现两步验证,非常安全。
WebDAV,没想到也做了支持,有需要的可以很方便使用了。
文件分享,支持公开和私密分享,链接格式也和百度盘一样。
(2)管理员界面
再进入管理员后台,网站整体情况一目了然。后台可以直接查看最近的更新,直接从Github下载更新增量包方便更新。
第一个是基础设置,站点名称、统计代码这些,必须设置好站点URL,否则文件分享等链接都是错误的。
注册访问设置,可以选择是否对外开放,设置验证码和邮件验证,考虑的很全面。
邮件发送设置,发送邮件的相关设置。
配置文件,可以自己做些修修改改。
杂项设置,对于可编辑文件大小、热门分享数量等做一些个性化设置。
对于文件下载可以启用Sendfile来降低负载,选择正确的服务器环境,再到伪静态那设置一下就行,参考官方wiki:启用Sendfile下载支持
模板,对整个系统可以做一些个性化改动。
文件管理,对于用户的文件进行管理,同时安装上传的方式、日期、大小都能分类快速筛选,非常细致!
管理用户,这就不多说了。
用户组,默认分了几个分类,这个比较重要,如果你的网盘有多种存放策略必须用用户组来设置。例如设置VIP用户可以上传到OSS,游客只能本地存储等。对于每个组别都能设置是否多线程、是否开启某些功能和初始的容量等。
上传策略,著名的几大对象存储都做了支持,另外支持本地存储和远程服务器存储,满足不同人群的需要。
对接远程服务器的方法,参考官方wiki:远程存储服务端搭建
(3)栗子:对接阿里云OSS存储。
阿里云的OSS一直买了都是吃灰,毕竟站点用的腾讯云服务器,备份啥的都在COS上很方便,阿里云OSS一直没用,这回终于派上用场了。
对接又拍、七牛的操作相对简单,填写API信息、Bucket信息、域名就行了,阿里云需要一些特殊操作在系统也有提示,安装系统提示就行了。
再回到阿里云OSS控制台创建个Bucket就行了,可以绑定个自己的域名,CNAME解析即可生效,如果有阿里云CDN可以使用CDN加速。
请注意Bucket的权限设置!目前发文时的1.0.3版本存在BUG,必须在网盘上传策略设置和OSS设置Bucket权限为“私有”才能正常使用,理论上是需要设置公读的,所以可能在下个版本就修好了,以后修好了本文再更新。
然后balabala填写对信息,检查一下就行了。例如“空间域名”、“上传域名”要搞清楚,本文就啰嗦一下,以免因为多写了一个符号搞失败:
添加上传策略后,转到用户组设置,设置用户组使用什么上传策略即可正常使用了,默认都是存储到本地。
四、使用总结
补坑完成,目前Cloudreve对于个人来说还是挺不错的,何况是刚刚起步发展前途和新功能扩展上也非常让人值得期待,而且对接对象存储节省了我的成本加快了下载速度。不过也因为是刚刚起步所以BUG是难免的,例如阿里云OSS的私有权限就困扰了我半天才发现是个BUG…
有BUG的话就去TG或Github提交反馈吧。
五、参考文档
本文的撰写参考了以下文档,感谢原作者的贡献:
(1)Cloudreve的完整安装包(不需要Composer)
(2)官方WIKI:https://github.com/HFO4/Cloudreve/wiki