Install any skill in seconds. Free to start, no credit card required.
Get Started Free →jeffallan/django-storages-s3
Use when configuring Django to store static and media files on AWS S3 with django-storages. Invoke when working with the STORAGES setting, S3 buckets, presigned URLs, CloudFront, or boto3-backed file storage in settings.py. Configures the Django 4.2+ STORAGES dict, public/private custom backends, presigned GET/POST URLs, IAM policies, and S3 mocking for tests. Trigger terms: django-storages, S3, boto3, S3Boto3Storage, STORAGES, presigned URL, CloudFront, media files, collectstatic, AWS_STORAGE_B
Passed 21 of 22 test cases with the skill, and 17 of 22 without it.
and 3 more in the full report
4 fixed17 passed either way1 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
We have private documents on AWS S3 that need presigned download URLs with query parameters (`querystring_auth = True`). We want to route those presigned URLs through a CloudFront custom domain using `AWS_S3_CUSTOM_DOMAIN = 'cdn.example.com'`. Show how to set up this custom storage class.
| Checked | Without skill | With skill |
|---|---|---|
| Sets custom_domain = None on the storage backend handling presigned URLs. | Missed | Passed |
| Explains that combining a custom domain with querystring_auth breaks presigned URL authorization. | Passed | Passed |
The instructions your model reads when the skill loads.
Senior Django specialist for production-grade file storage on AWS S3 via django-storages and boto3 — public and private media, static files, presigned URLs, and CloudFront.
STORAGES dict or legacy DEFAULT_FILE_STORAGEFileField/ImageField storage to S3 without code changespip install django-storages[s3] boto3; add "storages" to INSTALLED_APPSSTORAGES dict — Set default (media) and staticfiles backends with separate location prefixesSTORAGES entries when neededcollectstatic, confirm uploads land in S3, and mock S3 in tests with InMemoryStorage or motoLoad detailed guidance based on context:
| Topic | Reference | Load When |
|---|---|---|
| Settings & STORAGES | references/configuration.md | Core settings, 4.2+ vs legacy, CloudFront |
| Custom backends | references/custom-backends.md | Public vs. private buckets, per-field storage |
| Presigned URLs | references/presigned-urls.md | Download links, direct browser uploads |
| Testing & IAM | references/testing-storages.md | Mocking S3, IAM policy, common pitfalls |
The snippet below demonstrates the core MUST DO constraints: env-loaded credentials, STORAGES dict, separate media/static locations, and default_acl=None on the media backend.
# settings.py
import os
test cases passed, vs 17 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.