一个支持多家云存储驱动的公有云文件系统!

news/2025/2/24 9:30:08/文章来源:https://www.cnblogs.com/codechen8848/p/18731173

大家好,我是 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陈序员】,回复【开源项目交流群】进群,或者通过公众号下方的菜单添加个人微信,并备注【开源项目交流群】,通过后拉你进群

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/888891.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

传统ftp软件问题频出,一文了解适配的替代方案!

在互联网发展的早期,ftp软件凭借其简单易用的特性,成为了文件传输领域的中流砥柱,帮助无数企业实现文件的远程传输与共享。时过境迁,在如今数据量呈爆炸式增长、网络环境愈发复杂的时代,ftp软件就像一位上了年纪的老将,逐渐显露出诸多力不从心之处。 1.数据裸奔的安全风…

原创--记一次配置小米路由器(miwifi)的过程

1.登录2.登录后3.4.设置WAN口IP相关信息5.设置LAN口IP相关信息至此,配置完成,打通了LAN口与WAN口之间的数据传输 大概示意图如下: 海阔凭鱼跃,天高任鸟飞,成功没有捷径,唯有努力前行!

大三下每日打卡002(搭建Android平台和创建HelloWorld并发布apk)

实验一:搭建Android平台和创建HelloWorld 实验目的 本次实验的目的是让大家熟悉搭建智能手机开发平台的过程,了解Andorid开发项目的基本文件目录结构,并实现HelloWorld小例程。 实验要求完成Android开发平台的搭建及相关配置 创建项目并熟悉文件目录结构 实现例程HelloWorld…

TOTP算法介绍

摘要 本文根据 RFC4226 和 RFC6238 文档,详细的介绍 HOTP 和 TOTP 算法的原理和实现。 两步验证已经被广泛应用于各种互联网应用当中,用来提供安全性。对于如何使用两步验证,大家并不陌生,无非是开启两步验证,然后出现一个二维码,使用支持两步验证的移动应用比如 Google …

5090D-deepseek-Anythingllm-Ollama运行测试

ollama ollama配置环境变量ollama地址与镜像 C:\Users\DK>curl http://10.208.10.240:11434 Ollama is running C:\Users\DK>ollama list NAME ID SIZE MODIFIED bge-m3:latest 790764642607 1.2 GB 28 ho…

web课程

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>这是一个标题</title> </head> &…

解密ZAB协议:Zookeeper一致性的核心实现

一致性问题 设计一个分布式系统必定会遇到一个问题—— 因为分区容忍性(partition tolerance)的存在,就必定要求我们需要在系统可用性(availability)和数据一致性(consistency)中做出权衡 。这就是著名的 CAP 定理。 ZooKeeper 的处理方式,保证了 CP(数据一致性) 一致…

解密prompt系列49. 回顾R1之前的思维链发展路线

我先按照自己的思路来梳理下R1之前整个模型思维链的发展过程,可以分成3个阶段:大模型能思考,外生慢思考,内生慢思考在所有人都在谈论R1的今天,作为算法也是有些千头万绪无从抓起。所以这一章先复盘,我先按照自己的思路来梳理下R1之前整个模型思维链的发展过程。下一章再展…

CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比

CSnakes 是一个用于在.NET项目中嵌入Python代码的工具,由.NET源生成器和运行时组成,能够实现高效的跨语言调用,Github:https://github.com/tonybaloney/CSnakes。以下是关键信息整理:核心特性跨版本支持:兼容.NET 8-9、Python 3.9-3.13,支持Windows/macOS/Linux系统高性…

Plotly.NET 一个为 .NET 打造的强大开源交互式图表库

前言 今天大姚给大家分享一个 .NET 强大、免费、开源的交互式图表库:Plotly.NET。 项目介绍 Plotly.NET 一个为 .NET 打造的强大、免费、开源的交互式图表库,支持 C# 和 F#编程语言,它构建在 plotly.js 之上并提供多个 API 层,用于创建、样式化和渲染美观的数据可视化图表。…

Apple Store 无法更新 App 解决方案 All In One

Apple Store 无法更新 App 解决方案 All In One Apple store 中可以查看新版 App, 但是无法更新新版 App, 会一直在转圈加载, 然后更新失败 ❌ 新版 Apps 与当前操作系统版本不匹配,需要先更新系统,才能安装新版的 Apps 更新 iOS 系统 ✅Apple Store 无法更新 App 解决方案 A…

合宙 ESP32C3 首个ardunio程序

https://blog.csdn.net/dpjcn1990/article/details/136085443 #define LED_BUILTIN1 12 #define LED_BUILTIN2 13//使用USB转串口即可 #define RS485_RX_PIN 1 #define RS485_TX_PIN 0 #define RS485_ENABLE_PIN 18 #define RS485 Serial1 void setup() { Serial.begin(9…