Skip to main content

Django application provide custom storage uses S3 and Compressor.

Project description

django-custom-storage PyPi license

PyPi status PyPi version PyPi python version PyPi downloads PyPi downloads PyPi downloads

GitHub GitHub release GitHub release

Test codecov.io pre-commit.ci status gitthub.com

Check Demo Project

  • Check the demo repo on GitHub

Requirements

  • Python 3.10+ supported.
  • Django 4.2+ supported.

Setup

  1. Install from pip:
pip install django-custom-storage
  1. Modify settings.py by adding the app to INSTALLED_APPS:
INSTALLED_APPS = [
    # ...
    "compressor",
    "custom_storage",
    # ...
]
  1. Configure storage in settings.py. The package ships sensible defaults and reads the project specifics from APP_CONFIG["custom_storage"]; call apply_storage_defaults at the end of the file so the STORAGES, compression and AWS settings are derived for you:
# Project paths (kept in the project; not owned by the package)
MEDIA_ROOT = "/var/opt/your_project_name/mediaroot/"
STATIC_ROOT = "/var/cache/your_project_name/staticroot/"

# AWS credentials
AWS_ACCESS_KEY_ID = "YOUR_PROJECT_AWS_ACCESS_KEY_ID"
AWS_SECRET_ACCESS_KEY = "YOUR_PROJECT_AWS_SECRET_ACCESS_KEY"

# Project-specific options; everything else falls back to the package defaults.
APP_CONFIG = {
    "custom_storage": {
        "BUCKET_NAME": "your_project_bucket_name",
        "CUSTOM_DOMAIN": "cdn.your_project_bucket_name.com",
        # Optional overrides: FILE_EXPIRE, DEFAULT_ACL, PRIVATE_LOCATION, ...
    },
}

from custom_storage.conf import apply_storage_defaults

apply_storage_defaults(globals())

Top-level Django settings always win, so projects that already declare STORAGES, COMPRESS_* or AWS_* keep working unchanged. To serve assets from the local filesystem (handy in development) start the server with --force-local-storage or set FORCE_LOCAL_STORAGE = True.

See Settings for every available key and Storage classes for the backends, including the private storage that serves non-public uploads through signed, expiring URLs.

Run Example Project

git clone --depth=50 --branch=django-custom-storage https://github.com/DLRSP/example.git DLRSP/example
cd DLRSP/example
python manage.py runserver

Now browser the app @ http://127.0.0.1:8000

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_custom_storage-0.3.5.tar.gz (40.2 kB view details)

Uploaded Source

Built Distribution

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

django_custom_storage-0.3.5-py3-none-any.whl (72.2 kB view details)

Uploaded Python 3

File details

Details for the file django_custom_storage-0.3.5.tar.gz.

File metadata

  • Download URL: django_custom_storage-0.3.5.tar.gz
  • Upload date:
  • Size: 40.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for django_custom_storage-0.3.5.tar.gz
Algorithm Hash digest
SHA256 b7876f62ec4cc65bbb16ce6efc6b57dcb99993ae65ad367f72aa4e9cc9ca2804
MD5 5b013c9703b509ef9902c3640c54eb2b
BLAKE2b-256 fb5b3749b656362437262f6e3bca9e2e9083dc7f94c8aea5a7207049b01319a3

See more details on using hashes here.

File details

Details for the file django_custom_storage-0.3.5-py3-none-any.whl.

File metadata

File hashes

Hashes for django_custom_storage-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 dc69bdda1338bad0727c6b1eb0e46de4dc0258a21114c62298e6ef5be07d7db4
MD5 10056c18094236996822e7ec35884dc1
BLAKE2b-256 609bbf8a00d5867c5d5e1c9654d0df4265729b09889d2a3bcc548f99dcbdbd3b

See more details on using hashes here.

Supported by

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