Design and Implementation of a Lightweight Open‑Source Netdisk System

This article introduces a lightweight, open‑source netdisk system built with a front‑end Vue.js interface and a back‑end micro‑service architecture using SpringBoot, Dubbo, Zookeeper, Redis, Solr, and FastDFS, detailing its deployment, technology stack, and core features for file management and integration.

Java Captain
Java Captain
Java Captain
Design and Implementation of a Lightweight Open‑Source Netdisk System

1. Introduction

Finding a fully functional, open‑source netdisk solution on Gitee or GitHub is difficult, so a lightweight, easy‑to‑use system was developed using a modern front‑end/back‑end separation and micro‑service architecture, suitable for learners without project experience.

适合没有项目经验的同学学习

2. Deployment Architecture

Deployment Architecture
Deployment Architecture

3. Technology Stack

Front‑end

Vue.js + ElementUI as the base framework

WebUploader.js for chunked uploads

Back‑end

Maven + SpringBoot + SpringDataJPA as the core framework

Dubbo + Zookeeper for service governance

Nacos as configuration center

Redis for distributed cache and expiration listening

Zookeeper for distributed locks

WebSocket + Netty for message pushing

Solr for full‑text search

FastDFS for distributed file storage

Idempotency implemented with Redis, token, and custom annotations

4. Feature Description

1. Netdisk System

Chunked upload, instant upload, folder upload for large files

Chunked download, multi‑file merge, and compressed download

File sharing (friend share, private link, transfer)

Album management with online preview

Recycle bin with restore or permanent delete

Push notifications for sharing, expiration, and capacity updates

Distributed lock via Zookeeper for high‑concurrency safety

Expiration monitoring using Redis events (share expiry, delete expiry, etc.)

Log collection via AOP, remote transmission, and custom Dubbo filter generating 链路ID Full‑text file search powered by Solr

Distributed file storage using FastDFS

Additional utilities such as complex moves, preview, delete, rename, online creation/editing, version history, etc.

Office online editing (planned)

H5 client (expected update on April 25)

C/S client (planned)

Business system API client (completed)

Image watermarking (planned)

Online image cropping (planned)

2. Back‑end System

Component management for file preview and editing

Type management for file formats, icons, preview and edit components

Log management storing operation logs and linking them via

追踪ID

5. Project Repository

https://gitee.com/college996/zwz-netdisk

PS: If you find this sharing useful, please give a like or a view.

END

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Microservicesopen sourceVue.jsSpringBootdistributed storagenetdisk
Java Captain
Written by

Java Captain

Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.