django middleware for serving media files ( or protect them )
Project description
[](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` API 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 or use `sendfile` wrapper
for example,
```python
from fileprovider.utils import sendfile
def hello(request):
return sendfile('/absolute/path/to/file')
```
File handler for django, useful when you want to add control or logic to served files.
It uses `sendfile` API 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 or use `sendfile` wrapper
for example,
```python
from fileprovider.utils import sendfile
def hello(request):
return sendfile('/absolute/path/to/file')
```
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
File details
Details for the file django-fileprovider-0.1.4.tar.gz.
File metadata
- Download URL: django-fileprovider-0.1.4.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af7e36f38c29c334ac405d53c2f80c5dbdb021dda549c10b80a6e67a99bfb0a3
|
|
| MD5 |
2e0aa916840f333510d4de2f40ace489
|
|
| BLAKE2b-256 |
d5c1dcbc29e6414283522e51941b6f12b10dc54e64ae1ad81ff3b6e0458f60e8
|