django middleware for serving media files ( or protect them )
Project description
[![Build Status](https://travis-ci.org/instapk/django-fileprovider.svg?branch=master)](https://travis-ci.org/instapk/django-fileprovider)
File handler for django, useful when you want to add control or logic to served files.
It uses `sendfile` supports on different servers and uses pythonic solution on django development server.
Currently it supports,
* Apache
* Nginx
* LightHttpd
* Caddy
* Hiawatha
# INSTALLATION
use pip to install package:
`pip install django-fileprovider`
* add `fileprovider` to django `INSTALLED_APPS` section.
* add `fileprovider.middleware.FileProviderMiddleware` to `MIDDLEWARE_CLASSES` section
* set django `settings` file with `FILEPROVIDER_NAME` any of available providers `python`, `nginx`, `apache`, `lighthttpd`,
`caddy`, `hiawatha`, `xsendfile`, `xaccel`.
```python
# or you can put FILEPROVIDER_NAME as python in your local settings file
if settings.DEBUG:
FILEPROVIDER_NAME = "python"
else:
# or apache, lighthttpd, caddy
FILEPROVIDER_NAME = "nginx"
```
# USAGE
on django views where file response is required, fill response header `X-File` with absolute file path
for example,
```python
def hello(request):
response = HttpResponse()
response['X-File'] = '/absolute/path/to/file'
return response
```
File handler for django, useful when you want to add control or logic to served files.
It uses `sendfile` supports on different servers and uses pythonic solution on django development server.
Currently it supports,
* Apache
* Nginx
* LightHttpd
* Caddy
* Hiawatha
# INSTALLATION
use pip to install package:
`pip install django-fileprovider`
* add `fileprovider` to django `INSTALLED_APPS` section.
* add `fileprovider.middleware.FileProviderMiddleware` to `MIDDLEWARE_CLASSES` section
* set django `settings` file with `FILEPROVIDER_NAME` any of available providers `python`, `nginx`, `apache`, `lighthttpd`,
`caddy`, `hiawatha`, `xsendfile`, `xaccel`.
```python
# or you can put FILEPROVIDER_NAME as python in your local settings file
if settings.DEBUG:
FILEPROVIDER_NAME = "python"
else:
# or apache, lighthttpd, caddy
FILEPROVIDER_NAME = "nginx"
```
# USAGE
on django views where file response is required, fill response header `X-File` with absolute file path
for example,
```python
def hello(request):
response = HttpResponse()
response['X-File'] = '/absolute/path/to/file'
return response
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for django-fileprovider-0.1.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 574cb1f1e489e8fa6d492fa54b276a0a617b1c82cd1300820468925914e8f617 |
|
MD5 | 78b5ecd699fc3a01598f2bde1c982186 |
|
BLAKE2b-256 | 2f8c1e3e51e8ece00dade0e952c23cfefd1b8cb02a8bfd45f3397c34294d150a |