django-storages-s3
An agent skill by Jeffallan, from Jeffallan/claude-skills. Tags: api, cloud, django, documents, security, web.
What it does
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_BUCKET_NAME.
Install
With the skills CLI, which installs into Claude Code, Codex, Cursor and other agents:
npx skills add Jeffallan/claude-skills --skill django-storages-s3
Or copy the skill folder into Claude Code's skills directory by hand (~/.claude/skills for every project, or .claude/skills inside one):
git clone --depth 1 https://github.com/Jeffallan/claude-skills
cp -r claude-skills/skills/django-storages-s3 ~/.claude/skills/django-storages-s3
Safety box score
Grade B, low risk: 23 of 100 risk points, rated 2026-10-14. The grade rates what the skill and its scripts can reach on the machine of whoever installs it, across eight categories from shell execution to secrets access. How the score works.
This skill configures Django storage to send static/media files to AWS S3, with optional presigned S3 URLs and CloudFront signing. The main risks are external network access to S3/CloudFront, handling AWS credentials and signing keys, and package installation from PyPI.
| Category | Level | Why |
|---|---|---|
| Code & shell execution | 1 (low) | It tells the user to run package installs like `pip install django-storages[s3] boto3`, `pip install moto[s3]`, and `pip install django-storages[cloudfront]`, which fetch and install third-party code. |
| Network access | 2 (moderate) | The skill’s purpose is to move files over the network to AWS S3/CloudFront, including presigned GET/POST flows and direct browser-to-S3 uploads (`generate_presigned_post`, `.url()` returning presigned links). |
| Filesystem reach | 1 (low) | It requires editing project files such as `settings.py` and `models.py`, and it configures `collectstatic`/file-field uploads, but it does not read or write outside the project tree on the local machine. |
| Secrets & credentials | 1 (low) | It explicitly handles AWS credentials and signing keys via `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_CLOUDFRONT_KEY_ID`, and `AWS_CLOUDFRONT_KEY`, though it recommends env vars or IAM roles instead of hardcoding. |
| Privilege & persistence | 0 (none) | There is no sudo, service registration, shell startup editing, or other OS-level privilege change in the files. |
| Instruction hijack surface | 0 (none) | I found no hidden instructions, prompt-injection text, or attempts to make the agent ignore its rules or conceal actions. |
| Irreversible actions | 1 (low) | The examples and guidance enable automatic external side effects like `instance.save() # uploads to S3` and object deletion for cleanup, but they do not instruct unattended deployment, posting, or payments. |
| Transparency | 0 (none) | All shipped files are plain, readable markdown; there are no binaries, minified blobs, or decoded-at-runtime payloads. |
Before installing
- Confirm you want this project to have AWS S3 access and, if used, CloudFront signing keys.
- Read `references/presigned-urls.md` and decide whether direct browser-to-S3 uploads are acceptable for your app.
- Check your Django version and make sure you already use `STORAGES` everywhere if you are on 4.2+.
- Review bucket policies/IAM before enabling public or private backends so you know exactly what can be read, written, or deleted.
Rated 2026-10-14 by an automated review of 5 files from the skill's repository.
Source
- Repository
- Jeffallan/claude-skills (all skills from this repository)
- Path
- skills/django-storages-s3/SKILL.md
- Branch
- main
- Updated
- 2026-09-19
Related skills
- aws-auth — Adds user authentication to web and mobile apps with Amazon Cognito (user pools and identity pools) and the AWS Amplify client auth libraries.
- aws-networking — Routes AWS networking requests to the correct service skill for implementation.
- aws-secrets-manager — Secret safety for AWS Secrets Manager, secret management, credentials, API keys, tokens, and passwords.
- pentesting-with-aws-security-agent — Run an AWS Security Agent penetration test against a live web application — registers and verifies the target domain.
- code-documenter — Generates, formats, and validates technical documentation — including docstrings, OpenAPI/Swagger specs, JSDoc annotations, doc portals, and user guides.
- django-expert — Use when building Django web applications or REST APIs with Django REST Framework.