Skip to main content

web-fss

web-fss is a practical replacement for python -m http.server.

Features

  • Directory listing Web UI
  • Resume download via HTTP range (206 Partial Content)
  • Web upload button with chunked upload
  • Same-name conflict check before upload
  • Conflict options: overwrite / rename / cancel
  • Overwrite or resume upload flow
  • .upload metadata for upload progress
  • Auto-remove .upload after upload completion
  • File and folder delete button in UI
  • Open mode switch in UI: Preview (browser MIME rendering) / Download
  • --serve-index-html to auto-serve index.html/index.htm on directory request
  • Reverse proxy sub-path support via --base-path

Python compatibility: 3.7 to 3.13 (and newer 3.x).

Install

pip install web-fss

For local development:

pip install -e .

Run

Default (current directory, port 8000):

web-fss

or

python -m web_fss

Tip (recommended quick run):

uvx web-fss

Custom port and directory:

web-fss 9000 -d /data/files

Bind local only:

web-fss -b 127.0.0.1

Disable upload:

web-fss --no-upload

Show hidden files (dotfiles):

web-fss --show-hidden

Set upload chunk size (default 4MB):

web-fss --chunk-size 1048576

Auto-serve index.html/index.htm for directory requests:

web-fss --serve-index-html

Serve behind a reverse proxy path prefix:

web-fss -b 127.0.0.1 --base-path /files

Use --base-path when the proxy forwards requests with the prefix still present, such as /files/.api/list and /files/example.zip. If the proxy strips /files before forwarding to web-fss, no extra option is required; the Web UI builds API URLs from the current browser path.

Resumable Upload

When uploading a.zip, server creates:

  • a.zip (target file)
  • a.zip.upload (JSON metadata)

Metadata fields:

  • file_size
  • uploaded_ranges ([start, end))
  • bytes_received
  • completed

When uploading same filename again:

  1. Check existing file and .upload
  2. Resume if state is valid
  3. Otherwise overwrite
  4. Remove .upload after completion

API Endpoints

  • GET /.api/list?directory=/path/
  • POST /.upload/check
  • POST /.upload/init
  • POST /.upload/chunk
  • POST /.upload/delete
  • DELETE /.upload/delete

When --base-path /files is used, these endpoints are available under /files, for example GET /files/.api/list?directory=/path/.

License

MIT

Metadata

Release files for web-fss 0.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for web-fss 0.2.4
File Size Uploaded Provenance Actions
web_fss-0.2.4.tar.gz 26.7 kB Without provenance Details for web_fss-0.2.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for web-fss 0.2.4
File Interpreter ABI Platform Actions
web_fss-0.2.4-py3-none-any.whl Python 3 none any Details for web_fss-0.2.4-py3-none-any.whl

Total release size: 50.5 kB

Release files / web_fss-0.2.4.tar.gz

Download URL web_fss-0.2.4.tar.gz
Size 26.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6c4b0da6d5bf9b1e658b4e88f07525ca14d502175df5958c2fdc9b775d4d6608
BLAKE2b-256 checksum
How to use checksums
bc463cb7a1db1b90cdeae1d7327b4bf3802b56321b3467ba61e116a58245cec2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / web_fss-0.2.4-py3-none-any.whl

Download URL web_fss-0.2.4-py3-none-any.whl
Size 23.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9aa4ae6e8441080027df030eb7496efde215ac06ab7f70e1c1d38598824d24cc
BLAKE2b-256 checksum
How to use checksums
433705bfc3075b27bacf7deba1a4380db69272e500fa6c18b952ec54a2c89e4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Security for web-fss 0.2.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.4 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page