{ "info": { "author": "Vladislav Bakin", "author_email": "mixkorshun@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Security" ], "description": "django-safe-filefield\n=====================\n.. image:: https://travis-ci.org/mixkorshun/django-safe-filefield.svg?branch=master\n :alt: build status\n :target: https://travis-ci.org/mixkorshun/django-safe-filefield\n.. image:: https://codecov.io/gh/mixkorshun/django-safe-filefield/branch/master/graph/badge.svg\n :alt: code coverage\n :target: https://codecov.io/gh/mixkorshun/django-safe-filefield\n.. image:: https://badge.fury.io/py/django-safe-filefield.svg\n :alt: pypi\n :target: https://pypi.python.org/pypi/django-safe-filefield\n.. image:: https://img.shields.io/badge/code%20style-pep8-orange.svg\n :alt: pep8\n :target: https://www.python.org/dev/peps/pep-0008/\n.. image:: https://img.shields.io/badge/License-MIT-yellow.svg\n :alt: MIT\n :target: https://opensource.org/licenses/MIT\n\nSecure file field, which allows you to restrict uploaded file extensions.\nIt may be useful for user-uploaded files (attachments).\n\nThis package adds model and forms field. What this fields does:\n\n * restricts allowed file extensions (for example: only *.pdf files)\n * checks file extensions is correct for sent content-type\n * checks sent content type is correct for file content (detects by `libmagic`)\n * checks uploaded file with anti-virus software\n\nInstallation\n------------\n\nThe package can be installed using:\n\n.. code-block::\n\n pip install django-safe-filefield\n\n\nAdd the following settings:\n\n.. code-block:: python\n\n INSTALLED_APPS += (\n 'safe_filefield',\n )\n\n\n**django-safe-filefield** require `libmagic` to be installed.\n\nUsage\n-----\n\nSimply add field to your model:\n\n.. code-block:: python\n\n from safe_filefield.models import SafeFileField\n\n class MyModel(models.Model):\n\n attachment = SafeFileField(\n allowed_extensions=('xls', 'xlsx', 'csv')\n )\n\nOr to directly to your form:\n\n.. code-block:: python\n\n from safe_filefield.forms import SafeFileField\n\n class MyForm(forms.Form):\n\n attachment = SafeFileField(\n allowed_extensions=('xls', 'xlsx', 'csv')\n )\n\n\nClamAV support\n--------------\n\n.. note:: To use this functionality you should have `clamd` daemon.\n\nThis package have ability to check uploaded file with ClamAV antivirus.\n\nTo use anti-virus protection simply enable it in your form or model definition:\n\n.. code-block:: python\n\n from safe_filefield.forms import SafeFileField\n\n class MyForm(forms.Form):\n attachment = SafeFileField(\n scan_viruses=True,\n )\n\n\nYou can configure some ClamAV settings:\n\n.. code-block:: python\n\n CLAMAV_SOCKET = 'unix://tmp/clamav.sock' # or tcp://127.0.0.1:3310\n\n CLAMAV_TIMEOUT = 30 # 30 seconds timeout, by default None which means infinite\n\n\nContributing\n------------\n\nIf you have any valuable contribution, suggestion or idea,\nplease let me know as well because I will look into it.\n\nPull requests are welcome.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mixkorshun/django-safe-filefield", "keywords": "django", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-safe-filefield", "package_url": "https://pypi.org/project/django-safe-filefield/", "platform": "", "project_url": "https://pypi.org/project/django-safe-filefield/", "project_urls": { "Homepage": "https://github.com/mixkorshun/django-safe-filefield" }, "release_url": "https://pypi.org/project/django-safe-filefield/0.3.1/", "requires_dist": null, "requires_python": "", "summary": "Secure file field, which allows you to restrict uploaded file extensions.", "version": "0.3.1" }, "last_serial": 3235027, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "810d604dd00214520403116e132e28aa", "sha256": "6e9acc7f96b00bd6ed2c7c9dc10faa039c74e0fcea67157e264b778cd3dd6f6c" }, "downloads": -1, "filename": "django_safe_filefield-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "810d604dd00214520403116e132e28aa", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5170, "upload_time": "2017-10-01T13:24:24", "url": "https://files.pythonhosted.org/packages/82/8e/d1d2b9345deebef37cc99c58e06c60235319534f30df1c6ab404f66e34d3/django_safe_filefield-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c363fd3697e0d085aa93071b11b7d4f8", "sha256": "02104b7d498174eacc8e96160167f2331fad89ff15457636f407db9dd04fbeda" }, "downloads": -1, "filename": "django-safe-filefield-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c363fd3697e0d085aa93071b11b7d4f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2615, "upload_time": "2017-10-01T13:24:22", "url": "https://files.pythonhosted.org/packages/ca/31/bec29206e9902ea864ea39dc4aaeb9f1b8e1be600d3bbfe7bb71978310a3/django-safe-filefield-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c14a162666b623270957e8f76e24e2e3", "sha256": "d8064b3e1cc4d2bde16ba2f142349469b1b96a8821c3e4daf816f13adfaf3c25" }, "downloads": -1, "filename": "django_safe_filefield-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c14a162666b623270957e8f76e24e2e3", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6173, "upload_time": "2017-10-07T12:29:10", "url": "https://files.pythonhosted.org/packages/8e/b3/0904c5adfe264c40acb850477511a69947ca839e1294ee9f3413c7e40ccd/django_safe_filefield-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "763138661d1b10ec8743db3cfbf17f50", "sha256": "0fe4dde686656f5b0d204339848cdad006ebe82ac39e4245a99e1c0a0e285449" }, "downloads": -1, "filename": "django-safe-filefield-0.1.1.tar.gz", "has_sig": false, "md5_digest": "763138661d1b10ec8743db3cfbf17f50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3232, "upload_time": "2017-10-07T12:29:08", "url": "https://files.pythonhosted.org/packages/e9/05/cd07fc12bc0260fe79ae466a3dbcf7fd15d0518ac61a41896c1d4fd420e2/django-safe-filefield-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "5e92404f7bb0f6eea399595ea5070307", "sha256": "d20cec43dd6eb9feb1f05445cae8444ef915747c1e46f19757064702c7452782" }, "downloads": -1, "filename": "django_safe_filefield-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5e92404f7bb0f6eea399595ea5070307", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6262, "upload_time": "2017-10-07T12:38:05", "url": "https://files.pythonhosted.org/packages/60/31/7be616cde5df6257ef529ac207a4779b2ab0db32f0ac362e97e5fa75b90b/django_safe_filefield-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7db85ef46d07fda4126cb553eb8b3bf", "sha256": "4eeff6fca67061dd5275129e64d30ca5544f37b8d29642b891e300f1b97baff3" }, "downloads": -1, "filename": "django-safe-filefield-0.1.2.tar.gz", "has_sig": false, "md5_digest": "b7db85ef46d07fda4126cb553eb8b3bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3250, "upload_time": "2017-10-07T12:38:02", "url": "https://files.pythonhosted.org/packages/13/8c/6b69a397315042287b6c5f4e3db0b57e819d610bc4259bf56d5405c018ed/django-safe-filefield-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "387d7a45aa1af373e60dd99ad8f521d6", "sha256": "27e8f006305f33480736a9a502361b978a6982249899c784d1fe7244c585d646" }, "downloads": -1, "filename": "django_safe_filefield-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "387d7a45aa1af373e60dd99ad8f521d6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6255, "upload_time": "2017-10-08T22:44:16", "url": "https://files.pythonhosted.org/packages/80/ee/c1d8ae52a30c5a0ab10ce1026f570836bd999f9d845f4ebed52115d340f7/django_safe_filefield-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20fc4f8f6ca926fa5cfdbd743ce96c35", "sha256": "91cd8554ee27c70094119e5407aa6a03a887e449b5c36b1fa53c09cd0b06b69f" }, "downloads": -1, "filename": "django-safe-filefield-0.2.0.tar.gz", "has_sig": false, "md5_digest": "20fc4f8f6ca926fa5cfdbd743ce96c35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3346, "upload_time": "2017-10-08T22:44:14", "url": "https://files.pythonhosted.org/packages/66/98/9d8ad4cf75f53a4e9c71be432ea73926fae730f4160f45244a2794c61dad/django-safe-filefield-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "a7313083914d8d7f884b7504f7b11bb8", "sha256": "24270ef27e1a6fd0f39b7cd1d952d5d2ae9335a9409db8cb4fffeb9e07fc3fee" }, "downloads": -1, "filename": "django_safe_filefield-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a7313083914d8d7f884b7504f7b11bb8", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7889, "upload_time": "2017-10-08T23:29:07", "url": "https://files.pythonhosted.org/packages/06/18/6bdb21a528b3d14fb433fd2105a0ad66881616c849c1d299764dec223fd4/django_safe_filefield-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0ec48dbc6b2c46185af5c1b0acf7e41", "sha256": "22ea14c6037ce04a01e08f633aae17a96c56539aaf8d448349d5a5dd26652ac5" }, "downloads": -1, "filename": "django-safe-filefield-0.3.0.tar.gz", "has_sig": false, "md5_digest": "c0ec48dbc6b2c46185af5c1b0acf7e41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4294, "upload_time": "2017-10-08T23:29:04", "url": "https://files.pythonhosted.org/packages/05/01/f71c0a692f451af599cedc0e41ff1f5f09f2301d30ded3e521b109bb3f9c/django-safe-filefield-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "b94d09b87b80b93a08b70e352b1aa780", "sha256": "e4e8cbc7c6ac8312e539fb87206424dd325e7c66ebd345e064d890acbd7ec7e7" }, "downloads": -1, "filename": "django_safe_filefield-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b94d09b87b80b93a08b70e352b1aa780", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7887, "upload_time": "2017-10-08T23:30:25", "url": "https://files.pythonhosted.org/packages/4a/74/d5127ca6a42c9c08401e899b141a924babb595e87a4134f3c79c3a63c741/django_safe_filefield-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45a6c9ea71ffc16d1ff5ab115acbc57d", "sha256": "196a43ec2999a6772bec9db9073e7e19bd37aba6698332bb539720c9300d1419" }, "downloads": -1, "filename": "django-safe-filefield-0.3.1.tar.gz", "has_sig": false, "md5_digest": "45a6c9ea71ffc16d1ff5ab115acbc57d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4294, "upload_time": "2017-10-08T23:30:22", "url": "https://files.pythonhosted.org/packages/87/cf/c01912dea2c865efef73b70c1593511ca731712e5ad5195bf1686d3700e9/django-safe-filefield-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b94d09b87b80b93a08b70e352b1aa780", "sha256": "e4e8cbc7c6ac8312e539fb87206424dd325e7c66ebd345e064d890acbd7ec7e7" }, "downloads": -1, "filename": "django_safe_filefield-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b94d09b87b80b93a08b70e352b1aa780", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7887, "upload_time": "2017-10-08T23:30:25", "url": "https://files.pythonhosted.org/packages/4a/74/d5127ca6a42c9c08401e899b141a924babb595e87a4134f3c79c3a63c741/django_safe_filefield-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45a6c9ea71ffc16d1ff5ab115acbc57d", "sha256": "196a43ec2999a6772bec9db9073e7e19bd37aba6698332bb539720c9300d1419" }, "downloads": -1, "filename": "django-safe-filefield-0.3.1.tar.gz", "has_sig": false, "md5_digest": "45a6c9ea71ffc16d1ff5ab115acbc57d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4294, "upload_time": "2017-10-08T23:30:22", "url": "https://files.pythonhosted.org/packages/87/cf/c01912dea2c865efef73b70c1593511ca731712e5ad5195bf1686d3700e9/django-safe-filefield-0.3.1.tar.gz" } ] }