Metadata-Version: 2.1
Name: django-fileprovider
Version: 0.1.4
Summary: django middleware for serving media files ( or protect them )
Home-page: https://github.com/instapk/django-fileprovider.git
Author: Renjith Thankachan
Author-email: mail3renjith@gmail.com
License: UNKNOWN
Download-URL: https://github.com/instapk/django-fileprovider/archive/0.1.4.tar.gz
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Topic :: Utilities
License-File: LICENSE

[![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` 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')

 ```


