Adds easy support for libcloud to Django
Project description
Adds easy support for libcloud to Django. This allows for handling of media assets for Django and is designed to work easily with Python 3.3+ and Django 1.6+. In the works is support for Python 2.7.
Many thanks go to Jannis Leidel for giving me the code to get this started.
Documentation
The full documentation is at https://dj-libcloud.readthedocs.org.
Quickstart
Libcloud verifies server SSL certificates before it lets you do anything. It will search your system for the CA certificate, and if it doesn’t find it then it will blow up. See https://libcloud.readthedocs.org/en/latest/other/ssl-certificate-validation.html
Installing CA certificate bundle on Mac OS X:
# Assuming you are using homebrew for Mac OS X dependency management. $ brew install curl-ca-bundle
Install dj-libcloud:
$ pip install dj-libcloud
Then use it in a project:
# settings.py STATIC_URL = 'https://my-assets.cdn/static/' MEDIA_URL = 'https://my-assets.cdn/media/' STATICFILES_STORAGE = 'djlibcloud.storage.PipelineStorage' LIBCLOUD_PROVIDERS = { 'amazon_s3': { 'type': 'libcloud.storage.types.Provider.S3', 'user': os.environ.get('AWS_ACCESS_KEY'), 'key': os.environ.get('AWS_SECRET_KEY'), 'bucket': 'my-assets-cdn', 'secure': True, } } DEFAULT_LIBCLOUD_PROVIDER = 'amazon_s3'
Features
Works for uploading media assets using Python 3.3 and Django 1.6.
In theory supports all the backends that libcloud supports.
Code borged from work of Jannis Leidel, Django core developer, the master of Django static asset managment, and a great guy.
TODO
Tests! OMG TESTS!!!
More documentation. Especially on providers types available.
Backport to Python 2.7
Add better error message if bucket not found
Come up with more storage types so we aren’t dependant on django-pipeline. Nothing wrong with pipeline, just want to provide more options.
History
0.1.0 (2014-04-21)
First release on PyPI.
Frustration over lack of easy media asset support for Django and Python 3.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.