Хранение файлов Django на AWS S3 и CloudFront

integration

Django storages s3 is a Claude Code skill that configures Django static and media file storage on AWS S3 using django-storages and boto3. Reach for it when you want to stop saving user uploads to a local server disk, when collectstatic should push assets directly to an S3 bucket, when private files need to be served via expiring presigned URLs instead of being publicly exposed, or when you're fronting media delivery with CloudFront. The skill produces ready-to-use code: it wires up the Django 4.2+ STORAGES dict with separate backends for media and staticfiles, builds public and private custom backends, generates presigned GET/POST URLs, configures a CloudFront custom domain, and writes a least-privilege IAM policy. Stack: Python/Django, django-storages[s3], and boto3; credentials are always loaded from environment variables or an attached IAM role, never hardcoded. Test setups use InMemoryStorage or moto to avoid hitting real S3. Direction is moving file storage from local filesystem to S3 — not database work or business logic (for broader Django expertise, see the django-expert skill). Works with Django 4.2 and above; not the right fit if S3 is already wired up and you're debugging AWS-side errors unrelated to django-storages configuration.