This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

A small flask application to serve files.

Project Description

Slightly NIH Flask-based app to serve static content. It tries to capture 80% of the use-cases that are normally handled by the likes of nginx and Apache, only much slower =).

Other packages that do similar, but not quite the same things:

Configuration

Ecstatic has a single configuration file whose location is given via an environment variable “ECSTATIC_EXPORTS”. The file is parsed using Python3’s configparser module, with each section being processed from top to bottom.

Whenever a request comes in, a section is checked for whether or not it matches. If a match is found, no further sections are examined and the configuration in said section is used to serve the request.

A section matches a request if it

  1. Has a match key with a regular expression that matches the request’s path or
  2. Has a root section with no match present.

Any other section is ignored.

match-Sections

Any section that contains a match-key must also contain an fspath-key. If the URL path matches the expression given, fspath is interpolated as a format string, with positional arguments from the expression (missing groups are empty strings instead of None).

The section must still contain a root-entry, also a format string, which is used to jail paths.

root-Sections

Any section containing just a root-entry will simply serve content from the given root path, mapping 1:1 onto URLs.

Examples

A simple configuration that serves content from users public_html-directories (which are assumed to all be inside /home) and /var/www otherwise:

[homes]
# exposes /home/bob/public_html/ on http://example.org/~bob/
match = ^~([a-zA-Z0-9]+)(/.*)?$
fspath = /home/{0}/public_html{1}
root = /home/{0}
dirindex = on

[www]
root = /var/www
Release History

Release History

This version
History Node

0.4

History Node

0.4.dev1

History Node

0.3

History Node

0.2.dev1

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
ecstatic-0.4.tar.gz (3.5 kB) Copy SHA256 Checksum SHA256 Source Nov 14, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting