Lightweight file storage service
Project description
Lightweight File Storage Service (LFSS)
My experiment on a lightweight and high-performance file/object storage service...
Highlights:
- User storage limit and access control.
- Pagination and sorted file listing for vast number of files.
- High performance: high concurrency, near-native speed on stress tests.
- Support range requests, so you can stream large files / resume download.
- WebDAV compatible (NOTE).
It stores small files and metadata in sqlite, large files in the filesystem.
Tested on 2 million files, and it is still fast.
Usage:
pip install lfss
lfss-user add <username> <password>
lfss-serve
By default, the data will be stored in .storage_data.
You can change storage directory using the LFSS_DATA environment variable.
I provide a simple client to interact with the service:
lfss-panel --open
Or, you can start a web server at /frontend and open index.html in your browser.
The API usage is simple, just GET, PUT, DELETE to the /<username>/file/url path.
The authentication can be acheived through one of the following methods:
Authorizationheader with the valueBearer sha256(<username><password>).tokenquery parameter with the valuesha256(<username><password>).- HTTP Basic Authentication with the username and password (If WebDAV is enabled).
You can refer to frontend as an application example, lfss/api/connector.py for more APIs.
By default, the service exposes all files to the public for GET requests,
but file-listing is restricted to the user's own files.
Please refer to docs/Permission.md for more details on the permission system.
More can be found in the docs directory.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lfss-0.9.4.tar.gz.
File metadata
- Download URL: lfss-0.9.4.tar.gz
- Upload date:
- Size: 59.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.10.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd8a8089d79ba303aebce381f52d5940c19213e70669015fc1762441fdcd79f3
|
|
| MD5 |
e6ba4c26bdff7cd4fd8f40b25d42ef22
|
|
| BLAKE2b-256 |
8474a3035b48b34b6caa901fc83a55e3e741ddd7fa7657bb39964aa8b63811eb
|
File details
Details for the file lfss-0.9.4-py3-none-any.whl.
File metadata
- Download URL: lfss-0.9.4-py3-none-any.whl
- Upload date:
- Size: 74.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.10.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fbc897085c5948a7283b31083f9dd9d926704bba31163f99d15befe568c00e4
|
|
| MD5 |
7943e43cb5dafd68f05585e248ff829b
|
|
| BLAKE2b-256 |
f2b561761ab516fb8290faae84c668f95a7530a053b189e904cd4c3cfd784928
|