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
.uploadmetadata for upload progress- Auto-remove
.uploadafter upload completion - File and folder delete button in UI
- Open mode switch in UI:
Preview(browser MIME rendering) /Download --serve-index-htmlto auto-serveindex.html/index.htmon 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_sizeuploaded_ranges([start, end))bytes_receivedcompleted
When uploading same filename again:
- Check existing file and
.upload - Resume if state is valid
- Otherwise overwrite
- Remove
.uploadafter completion
API Endpoints
GET /.api/list?directory=/path/POST /.upload/checkPOST /.upload/initPOST /.upload/chunkPOST /.upload/deleteDELETE /.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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.