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.

Java High-Performance Architecture
Java High-Performance Architecture
Java High-Performance Architecture
Building a Lightweight Open‑Source File Storage System: Architecture & Tech Stack

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 ID
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.

Vue.jsSpringBootFastDFSfile storageSolr
Java High-Performance Architecture
Written by

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.

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.