Skip to main content

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

django_clamd-1.0.0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

django_clamd-1.0.0-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

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

Hashes for django_clamd-1.0.0.tar.gz
Algorithm Hash digest
SHA256 106429a71db571b570c88493115891a5472623263d25ebe7f92bead6c2f04e81
MD5 c5ec6ad1ab48b62e5a58a63318b2358c
BLAKE2b-256 21a9b99c82906edb502eed580c1b8d93ce6efd540e48f7d5eb757921885c9b11

See more details on using hashes here.

Provenance

File details

Details for the file django_clamd-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_clamd-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee2d46ed535355aa0840f93dd8468bf9e2236e2a54ea2affa956e5c9326e328a
MD5 826b5f89384f6d601f2c27b490f0dfda
BLAKE2b-256 994c369fc0bae4ba3da0fcfd41f5e43a6929b119d8d4211c7ae36ac5453706ec

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page