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.4.tar.gz (39.8 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.4-py3-none-any.whl (72.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_custom_storage-0.3.4.tar.gz
  • Upload date:
  • Size: 39.8 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.4.tar.gz
Algorithm Hash digest
SHA256 e48170bb8fa29174bee98fa9f7dd6a7258b739a6bda4bad2ef588e8c1a561b79
MD5 ccf8bf4f39c7ec52ffa7cb3044970988
BLAKE2b-256 35b3e27164708a62a395079de2a787367ed584c2ed93f708fecaa13a66d34d24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_custom_storage-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 07ad4f522fed251c3934a2264b3887af8c0efa05fcb14d5702cdb26182650d2c
MD5 d5babd8e788cbff7a628dcfa52c280ae
BLAKE2b-256 fce570ae21083f1486a12f8b377d93e7e25fe7502419e7c7e259be1320062e63

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