{ "info": { "author": "Ionel M\u00c4\u0083rie\u00c8\u0099 Cristian", "author_email": "ionel.mc@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP" ], "description": "==========================\ndjango-secdownload-storage\n==========================\n\nDjango storage backend that can be used to serve files via lighttpd's mod_secdownload module. This \nstorage backend is an extension to the reqular FileSystemStorage that will generate proper signed \ndownload urls.\n\nInstallation\n------------\n\n::\n\n pip install django-secdownload-storage\n \nor::\n\n easy_install django-secdownload-storage\n\nor via source checkout::\n\n hg clone https://bitbucket.org/ionelmc/django-secdownload-storage\n cd django-secdownload-storage\n python setup.py install\n\nUsage \n-----\n\nIn your django models you should add ``storage=SecDownloadFileSystemStorage()`` to the fields you \nwant served via secdownload. \n\nRequired settings: ::\n\n SEC_DOWNLOAD_ENABLED = True\n SEC_DOWNLOAD_SECRET_KEY = 'VERYVERYSECRET'\n SEC_DOWNLOAD_MEDIA_URL = MEDIA_URL + 'dl/'\n\nExample model: ::\n\n import secdownload_storage\n \n class Foo(models.Model):\n secret_picture = models.ImageField(upload_to='secret-pictures', storage=secdownload_storage.SecDownloadFileSystemStorage())\n\nYou need to enable mod_secdownload and have configuration similar to this (see \nhttp://redmine.lighttpd.net/wiki/1/Docs:ModSecDownload for more info): ::\n\n secdownload.secret = \"VERYVERYSECRET\"\n secdownload.document-root = \"/path/to/media\"\n secdownload.uri-prefix = \"/dl/\"\n secdownload.timeout = 3600\n \nAlso, note that you should disallow access to those files in the lighttpd configuration as they \nwould be served with your regular media files. Eg: ::\n\n $HTTP[\"url\"] =~ \"^/media/secret-pictures\" {\n url.access-deny = (\"\")\n }\n\nConfiguration\n-------------\n\n* SEC_DOWNLOAD_ENABLED - set this to False to disable signing the urls and generate them like \n FileSystemStorage. This is useful for development (if you use django's devserver).\n* SEC_DOWNLOAD_SECRET_KEY - this is the secret key that is used to sign the requests \n* SEC_DOWNLOAD_MEDIA_URL - this is the prefix path that's used instead of MEDIA_URL when \n SEC_DOWNLOAD_ENABLED is set to True. If SEC_DOWNLOAD_ENABLED is set to False \n SecDownloadFileSystemStorage will use MEDIA_URL for the prefix instead.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/ionelmc/django-secdownload-storage", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django-secdownload-storage", "package_url": "https://pypi.org/project/django-secdownload-storage/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-secdownload-storage/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/ionelmc/django-secdownload-storage" }, "release_url": "https://pypi.org/project/django-secdownload-storage/0.1.1/", "requires_dist": null, "requires_python": null, "summary": "Django storage backend that can be used to serve files via lighttpd's mod_secdownload module. This \nstorage backend is an extension to the reqular FileSystemStorage that will generate proper signed \ndownload urls.", "version": "0.1.1" }, "last_serial": 790554, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "b16ccd5df58201d7237d20929041c6aa", "sha256": "030b4db6c6cf8b5ad2af1a6bafbb45ca99d76e3464f7c17eee5329c238946d86" }, "downloads": -1, "filename": "django-secdownload-storage-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b16ccd5df58201d7237d20929041c6aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2383, "upload_time": "2011-05-14T01:52:15", "url": "https://files.pythonhosted.org/packages/76/4f/4721d6f981e1fce25c82f7aea3b33dcee24a7c0b45fb0d5dc16aba005eac/django-secdownload-storage-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "5aca50600dd235ae80e07afaac67980c", "sha256": "565e0fd05fcc0c7f12ecd621b99d29361f89000620d408c391cd6cdab082c105" }, "downloads": -1, "filename": "django-secdownload-storage-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5aca50600dd235ae80e07afaac67980c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2679, "upload_time": "2011-06-04T19:33:10", "url": "https://files.pythonhosted.org/packages/1e/45/bb2eeb77217d654ee66ebcc0bf809f957331cb22fe5a989cc9cfcde28a32/django-secdownload-storage-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5aca50600dd235ae80e07afaac67980c", "sha256": "565e0fd05fcc0c7f12ecd621b99d29361f89000620d408c391cd6cdab082c105" }, "downloads": -1, "filename": "django-secdownload-storage-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5aca50600dd235ae80e07afaac67980c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2679, "upload_time": "2011-06-04T19:33:10", "url": "https://files.pythonhosted.org/packages/1e/45/bb2eeb77217d654ee66ebcc0bf809f957331cb22fe5a989cc9cfcde28a32/django-secdownload-storage-0.1.1.tar.gz" } ] }