Skip to main content

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.

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

If you're not sure about the file name format, learn more about wheel file names.

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.

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

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.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

0.4.0

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page