Designing File Storage and Media Architecture

1. Designing File Storage Strategy

TierUse
Hot (S3 Standard)Frequent access
Infrequent (S3 IA)Backups, older media
Glacier / ArchiveCompliance, cold
Block storageEBS/PD for VM disks
File systemsEFS/Filestore for shared POSIX

2. Designing File Upload Architecture

PatternDetail
Direct-to-S3 with presigned URLBypasses app servers
Multipart uploadFiles > 100MB; parallel parts
Resumable (TUS)For unreliable networks
Virus scanS3 events → ClamAV / GuardDuty
MIME validationDon't trust extension

3. Designing File Access Control

MechanismDetail
Presigned URLsShort TTL, scoped permission
Signed cookiesFor batch access in CDN
App-mediatedStream through app layer (slower)
Bucket policyDefault deny; explicit allow
No public bucketUnless intentional + reviewed

4. Designing File Processing Pipeline

   Upload → S3 → Event → Queue → Worker (transcode/resize/scan) → Output → DB metadata → CDN
      
StageDetail
TriggerS3 event / Pub/Sub
Worker poolAuto-scaled, idempotent
StatusTrack per asset (pending/done/failed)

5. Designing CDN Integration for Files

PracticeDetail
CDN in front of bucketS3 + CloudFront / GCS + Cloud CDN
Origin Access IdentityBucket private; CDN-only access
Long TTL + versioned URLsCache forever
Signed URLs at CDN edgePer-user access

6. Designing Media Transcoding

ToolDetail
FFmpegUniversal encoder
AWS MediaConvert / ElementalManaged, scalable
Mux / CoconutSaaS
Output ladderMulti-bitrate (240p–4K)
FormatHLS / DASH for adaptive streaming

7. Designing Image Optimization

TechniqueDetail
On-the-fly resizeimgproxy, Thumbor, Cloudflare Images
Format negotiationServe AVIF/WebP via Accept
Responsive srcsetPer device
Lazy loadingloading="lazy"
Strip metadataEXIF removal for privacy + size

8. Designing File Metadata Management

FieldDetail
id, owner, size, typeCore
checksumSHA-256 for dedup / integrity
tags / labelsFor search / lifecycle
storage_classTrack tier
created_at / accessed_atFor lifecycle

9. Designing File Lifecycle Management

RuleDetail
Tier transitions30d → IA, 90d → Glacier
ExpirationAuto-delete after N days
VersioningKeep N versions
Object lockCompliance retention

10. Designing File Backup and Archival

PracticeDetail
Cross-region replicationS3 CRR / GCS dual-region
VersioningRecover deleted
Object lockWORM / ransomware proof
Deep archiveS3 Glacier Deep Archive
Restore SLAHours for archive tier

11. Designing Video Streaming Architecture

ElementDetail
ProtocolHLS (Apple), MPEG-DASH
Segments2–6s chunks
DRMWidevine, FairPlay, PlayReady
LiveLL-HLS, WebRTC for ultra-low latency
CDNEssential for scale

12. Designing Large File Handling

TechniqueDetail
Multipart upload5MB+ parts; parallel
Resumable uploadTUS protocol
Streaming downloadRange requests
Checksum per partDetect corruption
Avoid app server proxyDirect to/from object store