头图

大家好,我是 Java陈序员

在日常生活中,我们会记录很多精彩的瞬间,或图片或视频,并存放在网盘中。

然而,很多商业网盘下载速度慢,而且不能很好地保护隐私。

今天,给大家介绍一个支持多家云存储驱动的公有云文件系统,适合搭建私有化网盘服务!

关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。

项目介绍

Cloudreve —— 一个基于 Go + React 实现的支持多家云存储驱动的公有云文件系统,适用于搭建个人网盘、文件分享系统等。

功能特色

  • 支持多种存储方式:包括本地存储、远程 FTP/SFTP 存储以及云存储服务(阿里云 OSS、腾讯云 COS、Amazon S3 等)
  • 功能丰富:支持文件上传(拖拽上传、目录上传、流式上传处理)、在线预览、在线压缩/解压缩、对接 Aria2 离线下载、多文件打包下载、文件分享、多用户及用户组管理等功能
  • 灵活部署:All-In-One 打包,开箱即用,可以用于个人网盘、团队协作网盘或公有云服务
  • 技术架构:基于 Go 语言开发,性能更优且轻量
  • 用户界面友好:支持自定义配色、黑暗模式、PWA 应用等

技术栈

  • Go + Gin
  • React + Redux + Material-UI

快速上手

安装包部署

1、打开下载地址,下载对应操作系统的安装包

https://github.com/cloudreve/Cloudreve/releases

2、Windows 环境下,直接解压压缩包,启动 cloudreve.exe 即可

3、Linux 下,直接解压并执行主程序即可:

#解压获取到的主程序
tar -zxvf cloudreve_VERSION_OS_ARCH.tar.gz

# 赋予执行权限
chmod +x ./cloudreve

# 启动 Cloudreve
./cloudreve

4、浏览器访问

http://服务器IP:5212

Docker 部署

## 1、创建挂载目录和文件(可自定义目录)
mkdir -vp /data/software/cloudreve/{uploads,avatar} \
&& touch /data/software/cloudreve/conf.ini \
&& touch /data/software/cloudreve/cloudreve.db

## 2、一键启动
docker run -d \
-p 5212:5212 \
--name cloudreve \
--mount type=bind,source=/data/software/cloudreve/conf.ini,target=/cloudreve/conf.ini \
--mount type=bind,source=/data/software/cloudreve/cloudreve.db,target=/cloudreve/cloudreve.db \
-v /data/software/cloudreve/uploads:/cloudreve/uploads \
-v /data/software/cloudreve/avatar:/cloudreve/avatar \
cloudreve/cloudreve:latest

## 3、查看容器日志获取默认管理员账户用户名和密码
docker logs -f cloudreve

Cloudreve 默认会监听 5212 端口,可以在浏览器中访问 http://服务器IP:5212 进入 Cloudreve.

配置文件

首次启动时,Cloudreve 会在同级目录下创建名为 conf.ini 的配置文件,可以修改此文件进行一些参数的配置,如修改默认的数据库、使用 Redis、启用 Https 等,保存后需要重新启动 Cloudreve 生效。

[System]
; 运行模式
Mode = master
; 监听端口
Listen = :5212
; 是否开启 Debug
Debug = false
; Session 密钥, 一般在首次启动时自动生成
SessionSecret = 23333
; Hash 加盐, 一般在首次启动时自动生成
HashIDSalt = something really hard to guss
; 呈递客户端 IP 时使用的 Header
ProxyHeader = X-Forwarded-For

; SSL 相关
[SSL]
; SSL 监听端口
Listen = :443
; 证书路径
CertPath = C:\Users\i\Documents\fullchain.pem
; 私钥路径
KeyPath = C:\Users\i\Documents\privkey.pem

; 启用 Unix Socket 监听
[UnixSocket]
Listen = /run/cloudreve/cloudreve.sock
; 设置产生的 socket 文件的权限
Perm = 0666

; 数据库相关,如果你只想使用内置的 SQLite 数据库,这一部分直接删去即可
[Database]
; 数据库类型,目前支持 sqlite/mysql/mssql/postgres
Type = mysql
; MySQL 端口
Port = 3306
; 用户名
User = root
; 密码
Password = root
; 数据库地址
Host = 127.0.0.1
; 数据库名称
Name = v3
; 数据表前缀
TablePrefix = cd_
; 字符集
Charset = utf8mb4
; SQLite 数据库文件路径
DBFile = cloudreve.db
; 进程退出前安全关闭数据库连接的缓冲时间
GracePeriod = 30
; 使用 Unix Socket 连接到数据库
UnixSocket = false

; 从机模式下的配置
[Slave]
; 通信密钥
Secret = 1234567891234567123456789123456712345678912345671234567891234567
; 回调请求超时时间 (s)
CallbackTimeout = 20
; 签名有效期
SignatureTTL = 60

; 跨域配置
[CORS]
AllowOrigins = *
AllowMethods = OPTIONS,GET,POST
AllowHeaders = *
AllowCredentials = false
SameSite = Default
Secure = lse

; Redis 相关
[Redis]
Server = 127.0.0.1:6379
Password =
DB = 0

; 从机配置覆盖
[OptionOverwrite]
; 可直接使用 `设置名称 = 值` 的格式覆盖
max_worker_num = 50

还有反向代理、进程守护等配置可参考项目文档。

https://docs.cloudreve.org/

功能截图

  • 文件列表:支持列表、小图标、大图标展示

  • 文件预览:支持图片、视频等在线预览

  • 文件分类:创建文件分类,支持个性化标签名、图标、颜色

  • 分享链接:支持图片、视频等在线预览

  • 个人设置

  • 参数设置

  • 存储策略

可以说 Cloudreve 是一款优秀的开源文件管理系统,支持多种云存储,开箱即用,能帮助用户快速搭建起个人或团队的网盘服务。快去安装体验吧~

项目地址:https://github.com/cloudreve/Cloudreve

最后

推荐的开源项目已经收录到 GitHub 项目,欢迎 Star

https://github.com/chenyl8848/great-open-source-project

或者访问网站,进行在线浏览:

https://chencoding.top:8090/#/

我创建了一个开源项目交流群,方便大家在群里交流、讨论开源项目

但是任何人在群里打任何广告,都会被 T 掉

如果你对这个交流群感兴趣或者在使用开源项目中遇到问题,可以通过如下方式进群

关注微信公众号:【Java陈序员】,回复【开源项目交流群】进群,或者通过公众号下方的菜单添加个人微信,并备注【开源项目交流群】,通过后拉你进群

大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!


Java陈序员
78 声望11 粉丝