Description
Move user uploads (avatars, cover photos, post attachments, resumes) from local storage to a cloud CDN (AWS S3 or Cloudflare R2) for better performance, reliability, and scalability.
Requirements
- Configure Django storages for S3/R2 backend
- Migrate existing local media files to cloud storage
- Signed URLs for private files (resumes, chat attachments)
- Public URLs for avatars and post images
- Image optimization on upload (resize avatars to 400x400, compress post images)
- CDN caching headers (Cache-Control)
- Fallback to local storage if CDN is unavailable
- Management command to migrate existing files
- Environment variable configuration for bucket/keys
Files to Create/Modify
- linkup/professional_network/settings/base.py - Django storages S3 configuration
- linkup/core/media_storage.py - Custom storage backend with CDN support
- linkup/core/validators.py - Update file validators for cloud storage
- linkup/scripts/migrate_media_to_s3.py - Migration script
equirements.txt - Add django-storages, �oto3
- .env.example - Add S3 configuration variables
Acceptance Criteria
Description
Move user uploads (avatars, cover photos, post attachments, resumes) from local storage to a cloud CDN (AWS S3 or Cloudflare R2) for better performance, reliability, and scalability.
Requirements
Files to Create/Modify
equirements.txt - Add django-storages, �oto3
Acceptance Criteria