django-clamd is a django integration with Clamd (Clamav daemon).
Project description
This project integrates python-clamd with Django for easy scanning files for viruses on upload
Install
From PyPi with pip:
pip install django-clamd
or
easy_install django-clamd
You can also install development version direclty from GitHub:
pip install git+https://github.com/vstoykov/django-clamd.git
Aditioanlly if you want translations to work you need to add it to installed apps.
INSTALLED_APPS = (
...
'django_clamd',
...
)
Additionally if you are using Ubuntu, in order for django-clamd to work install clamav-daemon.
sudo apt-get install clamav-daemon
Usage
You can use it in forms:
from django import forms
from django_clamd.validators import validate_file_infection
class UploadForm(forms.Form):
upload_file = forms.FileField(validators=[validate_file_infection])
Or you can add it as validator directly in your model:
from django.db import models
from django_clamd.validators import validate_file_infection
class FileModel(models.Model):
document = models.FileField(validators=[validate_file_infection])
You will have automatically scanning of upladed files in Django Admin and also when create ModelForm’s for that model.
Configuration
By default django-clamd
tries to be smart and with good defaults.
You can still configure how to connect to Clamd. Default values are:
CLAMD_SOCKET = '/var/run/clamav/clamd.ctl'
CLAMD_USE_TCP = False
CLAMD_TCP_SOCKET = 3310
CLAMD_TCP_ADDR = '127.0.0.1'
Note: When you are running on Fedora or CentOS and clamav-scanner
package is installed then default value for CLAMD_SOCKET
is:
CLAMD_SOCKET = '/var/run/clamd.scan/clamd.sock'
By default, this package will allow a file if ClamD cannot be contacted or
if the scan fails. If you want validation to fail in these instances, change
CLAMD_FAIL_BY_DEFAULT
CLAMD_FAIL_BY_DEFAULT = True
You also can disable virus scanning for development with:
CLAMD_ENABLED = False
Note: This is primary for make it easy to run a project on development without the need of installing Clamd on devlopment machine.
License
django-clamd is released as open-source software under the LGPL license.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django_clamd-1.0.0.tar.gz
.
File metadata
- Download URL: django_clamd-1.0.0.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 106429a71db571b570c88493115891a5472623263d25ebe7f92bead6c2f04e81 |
|
MD5 | c5ec6ad1ab48b62e5a58a63318b2358c |
|
BLAKE2b-256 | 21a9b99c82906edb502eed580c1b8d93ce6efd540e48f7d5eb757921885c9b11 |
File details
Details for the file django_clamd-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: django_clamd-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee2d46ed535355aa0840f93dd8468bf9e2236e2a54ea2affa956e5c9326e328a |
|
MD5 | 826b5f89384f6d601f2c27b490f0dfda |
|
BLAKE2b-256 | 994c369fc0bae4ba3da0fcfd41f5e43a6929b119d8d4211c7ae36ac5453706ec |