Skip to main content

Lite file storage service

Project description

Lite File Storage Service (LFSS)

PyPI PyPI - Downloads

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[all]"
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.

There is a simple frontend at http://localhost:8000/.panel/. 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:

  1. Authorization header with the value Bearer sha256(<username>:<password>).
  2. token query parameter with the value sha256(<username>:<password>).
  3. 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.

More information can be found in the documentation.

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

lfss-0.16.1.tar.gz (873.2 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.16.1-py3-none-any.whl (952.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lfss-0.16.1.tar.gz
  • Upload date:
  • Size: 873.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for lfss-0.16.1.tar.gz
Algorithm Hash digest
SHA256 13fe9a76568ec264f4f7093458bf39e059ebece96bb1cf2e9d93db212a426b73
MD5 528f52bf70e538ff2756a0085b41b110
BLAKE2b-256 211098aa05a7152cd94dacbf57c7d3987d6e094853a864fd785611e3c4244e1f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lfss-0.16.1-py3-none-any.whl
  • Upload date:
  • Size: 952.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for lfss-0.16.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0234f388746285e84d2e3c62e4f96f1fbb1783c7f673c656c62cac9a443ae6e4
MD5 ea745fac041677f37c5f6f9da57d22ae
BLAKE2b-256 275835df33f2490b084afc8e35a3b82695cc6f1bbf68db5b7a8f868026126712

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