Metadata-Version: 2.1
Name: django-collectfaster
Version: 0.1.3
Summary: Parallel file copying for Django's collectstatic.
Home-page: https://github.com/dreipol/django-collectfaster
Author: dreipol GmbH
Author-email: dev@dreipol.ch
License: BSD
Keywords: django-collectfaster
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Django
Classifier: Framework :: Django :: 1.8
Classifier: Framework :: Django :: 1.9
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
License-File: LICENSE
License-File: AUTHORS.rst
Requires-Dist: django>=1.6
Requires-Dist: django-storages>=1.5.0
Requires-Dist: gevent>=1.1.1
Requires-Dist: greenlet>=0.4.9

====================
django-collectfaster
====================

|pypi| |status|

.. |pypi| image:: https://badge.fury.io/py/django-collectfaster.png
    :target: https://badge.fury.io/py/django-collectfaster
    :alt: Latest Version

.. |status| image:: https://img.shields.io/pypi/dm/django-collectfaster.svg
    :target: https://pypi.python.org/pypi/django-collectfaster
    :alt: Downloads

This package extends Django's ``collectstatic`` management command with a ``--faster`` argument that activates the
parallel file copying. The speed improvement is especially helpful for remote storage backends like S3.

Quickstart
----------

Install django-collectfaster::

    pip install django-collectfaster

Configure installed apps in your ``settings.py`` and make sure ``collectfaster`` is listed before ``django.contrib.staticfiles``::

    INSTALLED_APPS = (
        ...,
        'collectfaster',
        'django.contrib.staticfiles',
        'storages',
        ...,
    )

If you are using S3 with ``django-storages`` you probably already have this configured in your ``settings.py``::

    AWS_S3_HOST = 's3-eu-west-1.amazonaws.com'
    AWS_STORAGE_BUCKET_NAME = '<your_aws_bucket_name>'

Set the storage backends for your static and media files in the ``settings.py``::

    STATICFILES_STORAGE = 'collectfaster.backends.boto.S3StaticStorage'
    DEFAULT_FILE_STORAGE = 'collectfaster.backends.boto.S3MediaStorage'
    # STATICFILES_STORAGE = 'collectfaster.backends.boto3.S3Boto3StaticStorage'
    # DEFAULT_FILE_STORAGE = 'collectfaster.backends.boto3.S3Boto3MediaStorage'


You should split your static and media files on your S3 in different folders and configure it in the ``settings.py``::

    STATICFILES_LOCATION = 'static'
    MEDIAFILES_LOCATION = 'media'


Set the ``STATIC_URL`` at least on your production settings::

    STATIC_URL = 'https://%s/%s/%s/' % (AWS_S3_HOST, AWS_STORAGE_BUCKET_NAME, STATICFILES_LOCATION)


Usage
-----

Collect your static files parallel::

    python manage.py collectstatic --faster


Set the amount of workers to 30::

    python manage.py collectstatic --faster --workers=30


Spawn workers using ``multiprocessing`` instead of ``gevent``::

    python manage.py collectstatic --faster --use-multiprocessing


Credits
-------

Tools used in rendering this package:

*  Cookiecutter_
*  `cookiecutter-djangopackage`_

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage




History
-------

0.1.2 (2017-04-07)
++++++++++++++++++
* Add support for boto3 and multiprocessing instead of gevent
* Moved backends to a submodule (please change your setting variables `STATICFILES_STORAGE` and `DEFAULT_FILE_STORAGE`)

0.1.1 (2016-08-08)
++++++++++++++++++

* Rather use `django-storages` than the deprecated fork from `django-storages-redux`.


0.1.0 (2016-05-19)
++++++++++++++++++

* First release on PyPI.
