Skip to main content

A Python 3.7+ file server with directory listing, range download, and resumable upload.

Project description

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

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

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

License

MIT

Project details


Download files

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

Source Distribution

web_fss-0.2.3.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

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

web_fss-0.2.3-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

Details for the file web_fss-0.2.3.tar.gz.

File metadata

  • Download URL: web_fss-0.2.3.tar.gz
  • Upload date:
  • Size: 24.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for web_fss-0.2.3.tar.gz
Algorithm Hash digest
SHA256 bd3f56b6743223f025bbd0c021e4bbdabafee1a5f6a6c6406e79db68ffcc482f
MD5 a6fdc91cc17012e0a0ddb642cac5df7c
BLAKE2b-256 f450514e094185582af63f83358d74993f95d448a22bf2187ee22e6ea7471112

See more details on using hashes here.

File details

Details for the file web_fss-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: web_fss-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 22.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for web_fss-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 292f6e0ec99a3e3ed01ddbdd37b10c30039146789b2c155def3e19738520e8b3
MD5 3225b5664ee2974f1f5e3c53cc62e235
BLAKE2b-256 0cc6855fcabc1373fc25aab921ee461ea4c83b9acb777e1d62512c1180265949

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