Skip to main content

Storage backend for Django that encrypts/compresses with PZip.

Project description

django-pzip-storage

A FileSystemStorage subclass for Django that encrypts/compresses with PZip.

Installation

pip install django-pzip-storage

Usage

The simplest way to use PZipStorage is by setting your DEFAULT_FILE_STORAGE to pzip_storage.PZipStorage. By default, PZipStorage will use your SECRET_KEY setting as the encryption key.

IMPORTANT: Encrypting with SECRET_KEY means you must keep SECRET_KEY a secret, and if you lose or reset it without first rotating the keys of all stored files, they will be lost forever.

PZipStorage may be used with existing unencrypted files, as a drop-in replacement for FileSystemStorage. If it determines the requested file is not a PZip file, it will delegate to FileSystemStorage after emitting a needs_encryption signal (see below).

You may also use PZipStorage as a custom storage backend anywhere Django allows it; see Managing Files in the Django documentation for more information.

Settings

  • PZIP_STORAGE_EXTENSION - the extension to append to any file saved with PZipStorage. Defaults to .pz.
  • PZIP_STORAGE_NOCOMPRESS - a set of file extensions (with leading period) which should not be compressed when saving. Defaults to: [".z", ".gz", ".zip", ".tgz", ".jpg", ".jpeg", ".png", ".gif", ".sit", ".sitx", ".7z", ".pz", ".bz2", ".xz"]
  • PZIP_STORAGE_KEYS - an iterable (or callable returning an iterable) of keys to use. The first key on the list will be used for encrypting files. Defaults to PZipStorage.default_keys, which yields SECRET_KEY.

These settings may be overridden on a per-storage basis by instantiating PZipStorage manually with extension or nocompress keyword arguments.

Signals

PZipStorage emits a number of signals when opening files in various circumstances:

  • pzip_storage.needs_rotation - sent when a file was decrypted using an old key, i.e. not the first key in the provided list.
  • pzip_storage.needs_encryption - sent when an unencrypted file was opened.
  • pzip_storage.bad_keys - sent when an encrypted file was opened, but no keys in the list could decrypt it.

You may listen for these signals to do things like gradual encryption, key rotation, or logging.

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-pzip-storage-0.9.9.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

django_pzip_storage-0.9.9-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file django-pzip-storage-0.9.9.tar.gz.

File metadata

  • Download URL: django-pzip-storage-0.9.9.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for django-pzip-storage-0.9.9.tar.gz
Algorithm Hash digest
SHA256 371cd53fa8cb5d81fb6070db4d1ee4f9cc251f936154292528b87ac9e296d441
MD5 6cb48808fe6fb6acad47e6b77ae3e30d
BLAKE2b-256 ba93604e4fcaaf700d8cd78d8f1bd573f05da726ae6697ffb34d57fd4e7c7005

See more details on using hashes here.

File details

Details for the file django_pzip_storage-0.9.9-py3-none-any.whl.

File metadata

  • Download URL: django_pzip_storage-0.9.9-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for django_pzip_storage-0.9.9-py3-none-any.whl
Algorithm Hash digest
SHA256 f050eb5c593b12e8cb76e402c9ae0258173790bfbefd42ce1e9de5d800c458ee
MD5 4d5f805330dda978ea417a08f8fc334d
BLAKE2b-256 c952186937ffd0e0dad377b3512ce0996c41d74ca279f9aa8fbf681ef3952c90

See more details on using hashes here.

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