Skip to main content

Lightweight file storage service

Project description

Lightweight File Storage Service (LFSS)

PyPI

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.

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.
Authentication via Authorization header with the value Bearer <token>, or through the token query parameter.
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.

Project details


Release history Release notifications | RSS feed

This version

0.8.4

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lfss-0.8.4.tar.gz (49.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lfss-0.8.4-py3-none-any.whl (61.3 kB view details)

Uploaded Python 3

File details

Details for the file lfss-0.8.4.tar.gz.

File metadata

  • Download URL: lfss-0.8.4.tar.gz
  • Upload date:
  • Size: 49.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.5

File hashes

Hashes for lfss-0.8.4.tar.gz
Algorithm Hash digest
SHA256 ea5a16fb98d441943f7276d25fbdea921292bf0e670d4c6680a81031ca17fb65
MD5 a6244963230f3579c9a71da09b171697
BLAKE2b-256 7fdabccaa4d9ed328737a9c8b352eaaaa0cad9cbb19f56140d2118b6d42d85bd

See more details on using hashes here.

File details

Details for the file lfss-0.8.4-py3-none-any.whl.

File metadata

  • Download URL: lfss-0.8.4-py3-none-any.whl
  • Upload date:
  • Size: 61.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.5

File hashes

Hashes for lfss-0.8.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f33933e6cb99c8d0ff12e06d9dc353f1ea7866b1422b9baa8f196336208fb4b2
MD5 80aba2497df7623c41e3d9da6c7d3444
BLAKE2b-256 02aaf0d0b81a1f8aa15b8d0b6a91c3773cdeabecc9422e20786c1d967779ffdd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page