Commit Graph

2 Commits (c1b0ad73ca9379cc288077cefdaa29b29c91a1ee)

Author SHA1 Message Date
PeninsulaInd 81cf55f2e7 Base T2 off of T1, some deletion of old stories 2026-03-11 12:13:52 -05:00
PeninsulaInd a815cbcf3e Story 6.2: Implement AWS S3 Storage Client
- Add S3StorageClient class implementing StorageClient Protocol
- Support AWS S3 and S3-compatible services with custom endpoints
- Automatic bucket configuration for public read access only
- Content-type detection for uploaded files
- URL generation (default S3 URLs and custom domain support)
- Error handling for common S3 errors (403, 404, NoSuchBucket, etc.)
- Retry logic with exponential backoff (consistent with BunnyStorageClient)
- Update storage_factory to return S3StorageClient for 's3' and 's3_compatible'
- Add comprehensive unit tests with mocked boto3 calls (18 tests, all passing)

Implements Story 6.2 from Epic 6: Multi-Cloud Storage Support
2025-12-10 14:57:44 -06:00