Skip to main content

A simple way to share files over HTTP without explaining FTP to the receiver.

Project description

EZserve

Simple (and hopefully secure enough) way to share files over HTTP. Inspired by simple-http-server.

Usage

Running the package will serve the current working directory publicly on 0.0.0.0:53443. Alternatively, you can pass one or more file/folder as a console argument to serve them as if they were in the same directory.

py -m ezserve "Videos/Shared" "Videos/private/or_not.mp4" will let your clients access any video in $cwd/Videos/Shared and its subfolders, as well as a single video from $cwd/Videos/private, but not other videos next to it.

Security Concerns

Although I've attempted to prevent abuse by completely banning .. from the paths, I can't guarantee that there's no way to access files you

Roadmap

  • Core: Proof-of-concept: serve listed files and dirs
  • Core: Figure out HTTPS
  • Core: Add global password protection
  • Core: Add per-file password protection
  • QoL: improve the web UI
  • QoL: allow selecting multiple files and folders to download all of them in one ZIP file
  • QoL: add CF tunnel support to make it easier for people without a public IP.
  • Maybe? Run the server as a daemon, with a context-menu option to share a file.

Known Issues

I use symlinks to simplify sharing multiple distinct folders as if they were next to each other. Windows, for some reason, is being really stingy about that. Enabling developer mode in settings seems to alleviate the issue; I'm not actively planning on fixing that, although it would be a nice thing to have.

CLI Options

  • -H --host - hostname to listen on. 0.0.0.0 by default, meaning your files are exposed to the internet. It can be a fully qualified domain name (FQDN) or the public IP address of the interface you intend to listen on.
  • -p --port - port number to listen on. 53443 by default. Any unoccupied port works; your browser will automatically try port 80 for http:// and port 433 for https://.
  • -e --expand-root - when serving a single directory, the web UI will show its contents on the frontpage, instead of a list with only the root folder's name. Ignored if you serve a single file/anything more than just a single directory. At the time of writing this, it also prevents the creation of a temp folder with a symlink; this is an implementation detail and should not be relied on (although I doubt anyone will rely on it anyway).

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

ezserve-0.1.1.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

ezserve-0.1.1-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file ezserve-0.1.1.tar.gz.

File metadata

  • Download URL: ezserve-0.1.1.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for ezserve-0.1.1.tar.gz
Algorithm Hash digest
SHA256 aa715bc9b8c2a6c4f161f694b645b607d995028dea6d6f87c48d396ce23bb003
MD5 fda07d2acb9f0192ba03c3017d13e6c1
BLAKE2b-256 c300bb5e27d028fa3186f94d245d7b3c1770434afa2eed5c00ee040a7e29ae7c

See more details on using hashes here.

File details

Details for the file ezserve-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ezserve-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for ezserve-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0062280a3412f5cdbe65b630a67c588885074bca741cacebf91bfb653f2d1720
MD5 121793f6a15e731ab4a0097cb4234d35
BLAKE2b-256 3cf42ddd04cdc4c2c38e51c5421fb9b8e776afc28b4f280b04145abd4e0d098d

See more details on using hashes here.

Supported by

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