Skip to main content

a simple static fileserver and directory index server in python (WSGI app)

About

Often for testing you will want a static fileserver and directory index as part of your WSGI stack. In addition, you may have requirements to run such as part of a production WSGI stack. FileServer fits these needs.

Motivation

I needed a directory index server a la Apache to test a PyPI clone I was using. After surveying what was out there, there didn’t seem anything out there that was easily consumable for my purposes. So I wrote one only depending on webob .

Contents

from fileserver import * should give you access to all of the usable components of fileserver:

  • file_response: return a webob response object appropriate to a file name

  • FileApp: WSGI app that wraps file_response

  • Directory Server: serves a directory tree and generated indices

  • main: command line entry point

FileApp and file_response are heavily borrowed from http://docs.webob.org/en/latest/file-example.html . I also borrowed from Paste’s StaticURLParser and static.Cling.

In addition there is a command line script, serve, which may be used to serve a directory with the wsgiref server.

Tests

doctests and a test runner, test.py, exist in the tests/ subdirectory of http://k0s.org/hg/FileServer . I currently use paste.fixture.TestApp to mock requests and inspect responses, but should probably move to WebTest .

Other Projects

While I didn’t find them suitable for my use, there are other standalone static fileservers available for python:


Jeff Hammel

http://k0s.org/hg/FileServer

Release files for FileServer 0.3

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

Source distribution (sdist)

Source distribution for FileServer 0.3
File Size Uploaded
FileServer-0.3.tar.gz 4.5 kB Details

Release files / FileServer-0.3.tar.gz

Download URL FileServer-0.3.tar.gz
Size 4.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ed733028766915f794544dfe4af8b3824ddc7c2d072ee5f18e4e4fd0ddbb486a
BLAKE2b-256 checksum
How to use checksums
4ee5b80f4a307e67dab2b770f3f49af3cd67ad8269356b6df08a19dca3605fbf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.3 This release

1 release file

0.2.1

1 release file

0.2

1 release file

0.1

1 release file

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