Building a Lightweight Open‑Source File Storage System: Architecture & Tech Stack
This article outlines the design, deployment architecture, technology stack, and core features of a lightweight, open‑source file storage system built with modern front‑end and micro‑service back‑end technologies, offering file management, sharing, and distributed storage capabilities.
Introduction
Finding a good, feature‑complete, open‑source file storage system on Gitee or GitHub is difficult, so a lightweight, easy‑to‑use solution was developed using a front‑end/back‑end separation and micro‑service architecture, suitable for learners without project experience.
Deployment Architecture
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 push
Solr for full‑text search
FastDFS for distributed file storage
Idempotency implemented with Redis, token, and custom annotations
Feature Overview
File Storage System
Upload: chunked upload, instant upload, folder upload for large files
Download: chunked download, multi‑file merge and compression
File sharing: friend sharing, private link sharing, and transfer of shared files
Album management: create albums, online image preview
Recycle bin: restore or permanently delete files
Push notifications: sharing messages, expiration alerts, capacity updates
Distributed lock: Zookeeper‑based lock for data safety under high concurrency
Expiration listening: Redis‑based listeners for share expiration and delete events
Log collection: AOP‑based request logging with remote transmission; custom Dubbo filter generates trace ID File search: Solr full‑text search integration
File storage: FastDFS distributed storage integration
Miscellaneous: complex operations, move, preview, delete, rename, online creation/editing, version history, etc.
Office online editing: planned for future updates
H5 client version: expected update on April 25
C/S client version: planned for future updates
Business system API client: completed
Image watermarking: planned for future updates
Image online cropping: planned for future updates
Back‑end Management System
Component management: handles file preview and editing components
Type management: manages file formats, icons, preview and editing components
Log management: stores and displays operation logs, correlatable via
trace IDSigned-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Java High-Performance Architecture
Sharing Java development articles and resources, including SSM architecture and the Spring ecosystem (Spring Boot, Spring Cloud, MyBatis, Dubbo, Docker), Zookeeper, Redis, architecture design, microservices, message queues, Git, etc.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
