MIT License

技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

JmalCloud: 私有云存储的可信搭档

项目背景与痛点

云存储固然便利,但传统的公有云存储服务难免带来数据隐私和安全方面的忧虑。JmalCloud 便是为这样的需求而生,致力于提供私密性高、安全性强的云存储解决方案。它允许用户在自有服务器上搭建云存储环境,从而拥有完全的文件控制权和隐私保障。

核心技术揭秘

技术栈与架构

JmalCloud 的核心设计基于现代化 Web 技术栈,以下图所示的架构为例,清晰展示数据流的关键环节:

graph TD A[用户请求] --> B[负载均衡] B --> C[反向代理] C --> D{"路由解析"} D -->|"文件上传/下载"| E[文件存储] D -->|"元数据管理"| F{"数据库操作"} F -->|"数据读写"| G[数据存储] F -->|"事务处理"| H[数据缓存] D -->|"系统配置"| I[配置管理] I --> J[系统容器]
  1. 负载均衡:负责分配用户请求的负载,确保系统稳定运行。
  2. 文件存储:利用本地文件系统存储用户文件,并进行相应的加密处理。
  3. 数据库操作:存储文件元数据,如文件名、上传时间、加密密钥等。
  4. 数据缓存:快速响应用户的文件操作请求,提高系统效率。
  5. 配置管理:灵活配置系统,以适应不同用户需求,包括文件加密策略、存储策略等。

设计原则

数据隔离与分层

JmalCloud 在设计伊始便注重数据隔离和分层。数据流被严格隔离,文件、元数据和系统配置均通过不同的接口进行访问,从而避免数据混淆,并降低安全漏洞的发生概率。

安全机制
  1. 加密保护:所有文件和元数据均采用高强度加密技术,保护用户数据免受窥探。
  2. 访问控制:通过细粒度的权限控制,保障文件和系统配置的安全。
  3. 日志记录:所有操作日志化,便于后续审计。

功能亮点与差异

JmalCloud 的最大亮点在于其私有化特性,用户可以在自己的服务器上搭建并完全控制整个存储系统。相比公有云服务,其能够提供更高的隐私保护,且维护成本可控。从功能层面来说,以下几部分尤其值得关注:

  • 自定义存储策略:可根据需要制定个性化的文件存储计划。
  • 全面加密:确保所有文件均受到加密保护。
  • 灵活访问控制:提供细粒度的权限管理模式。
  • 灵活扩展:通过负载均衡和缓存机制,系统具备良好的扩展性。

应用场景与落地建议

生产环境注意事项

在生产环境中部署 JmalCloud,需考虑如下几点:

  • 硬件配置:推荐配置足够强的服务器以支撑高并发的文件上传和下载。
  • 安全性:定期更新软件和固件,以避免由于软件漏洞引发的安全问题。
  • 备份机制:尽管系统具备完整性和可用性,但适当的备份策略依旧不可或缺。

适用场景

JmalCloud 适用于以下场景:

  • 企业内部数据存储:为中小型企业提供私有云存储。
  • 个人隐私保护:个人用户无需担心将文件上传至公有云的安全隐患。
  • 教育机构数据存储:用于学生和教职员工之间的资料分享。

综合评价

JmalCloud 以私有化的云存储解决方案为切入口,在数据安全和个人隐私保护方面提供了重要保障。其系统稳定可靠且易于部署扩展,但在解决超大规模存储及复杂的文件管理需求时,可能存在扩展上的挑战。

优点

  • 数据安全和隐私保护优先。
  • 架构设计灵活,具备良好的扩展性和稳定性。
  • 适配不同规模的使用场景。

缺点

  • 在处理海量数据和高性能访问需求时,可能面临扩展瓶颈。
  • 需用户自行管理软件更新及硬件配置。

总之,JmalCloud 是一款针对隐私和安全需求的存储解决方案,非常适合个人和企业用户搭建内网私有云存储系统,同时也为数据主权的回归提供了一种技术解决方案。

关于

GitHub 原始描述(英文)

JmalCloud It's a private cloud storage project that makes it simple and secure to manage your files in the cloud. JmalCloud 是一款私有云存储网盘项目,能够简单安全管理您的云端文件

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
1220
价值分
575
活跃状态
活跃

语言占比

CSS
Dockerfile
HTML
JavaScript
SCSS
Shell
Stylus
Vue

Release

README

JmalCloud 个人网盘 | English

JmalCloud 是一款私有云存储网盘项目,能够简单安全管理您的云端文件

✅ 支持OSS,阿里云OS、腾讯云OSS和MinIO

✅ 支持图片,音频,视频等文件的在线预览

✅ 支持Word、Excel、PPT、流程图和思维导图的编辑和预览

✅ 支持x86、arm64(Centos/Debian/Ubuntu/macOS)

✅ 提供强大的在线文本编辑器

✅ 支持超大文件上传,断点续传

✅ 支持WebDAV

线上Demo:

查看 Demo , 用户名:demo, 密码:demo1234

部署

  • 必须安装:Docker 和 Docker Compose v2.0+

参考docker-compose.yml

docker compose up -d

等待启动后访问: http://{your_ip}:7070

重启管理员密码
# 1. 重置密码
docker exec -it jmalcloud_mongodb mongo jmalcloud --eval "db.getCollection('user').update({ 'creator': true }, {\$set: { 'password': '1000:c5b705ea13a1221f5e59110947ed806f8a978e955fbd2ed6:22508de12228c34a235454a0caf3bcaa5552858543258e56' }}, { 'multi': false, 'upsert': false })"
# 2. 重启容器
docker restart jmalcloud_server
# 重置后的密码为: jmalcloud

备份/恢复 数据库

备份数据库
  docker exec -it jmalcloud_mongodb mongodump -d jmalcloud -o /dump/xxx --gzip --quiet
恢复数据库
  docker exec -it jmalcloud_mongodb mongorestore --gzip --nsInclude=jmalcloud.* --dir /dump/xxx --quiet

dev

环境准备:
  • jdk17+
  • mongodb4.4+
  • node v16.x.x
1、克隆服务端项目

git clone https://github.com/jamebal/jmal-cloud-server.git

2、修改配置文件 src/main/resources/file.yml

修改参数rootDir 和 ip2region-db-path 改为自己的目录, 即可启动服务

3、克隆web端项目

git clone https://github.com/jamebal/jmal-cloud-view.git

4、项目目录下执行npm install
5、启动web端npm run dev

部分截图:

image0 image1 image2 image3 image4 image5 image6

浏览器支持

IE / Edge
IE / Edge
Firefox
Firefox
Chrome
Chrome
Safari
Safari
IE10, IE11, Edge last 2 versions last 2 versions last 2 versions

许可

MIT license.

Copyright © 2020-present jmal

评论

暂无评论