django-custom-storage 
GitHub

Test

Check Demo Project
- Check the demo repo on GitHub
Requirements
- Python 3.10+ supported.
- Django 4.2+ supported.
Setup
- Install from pip:
pip install django-custom-storage
- Modify
settings.pyby adding the app toINSTALLED_APPS:
INSTALLED_APPS = [
# ...
"compressor",
"custom_storage",
# ...
]
- Configure storage in
settings.py. The package ships sensible defaults and reads the project specifics fromAPP_CONFIG["custom_storage"]; callapply_storage_defaultsat the end of the file so theSTORAGES, 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
Metadata
Release files for django-custom-storage 0.3.52
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| django_custom_storage-0.3.52.tar.gz | 42.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_custom_storage-0.3.52-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 118.9 kB
Release files / django_custom_storage-0.3.52.tar.gz
| Download URL | django_custom_storage-0.3.52.tar.gz |
|---|---|
| Size | 42.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c00b3ee6290935f5fcacb63fc4421bee68d050c3b14285da5d0452f766f24bbe
|
|
BLAKE2b-256 checksum How to use checksums |
050888dfac9cf5561b9c86c1960ee62529175c02e831c31d7aa5634b7c731f24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / django_custom_storage-0.3.52-py3-none-any.whl
| Download URL | django_custom_storage-0.3.52-py3-none-any.whl |
|---|---|
| Size | 76.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
68bf065d118501e5157a5827e44b4841ffe24a1e56b9ab258912e78c3b478ef9
|
|
BLAKE2b-256 checksum How to use checksums |
0cb4b791630af1d9926c9820d85a93e66be0ac4825d47424b5abcfc64fa0a958
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for django-custom-storage 0.3.52
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.