Commit Graph

1 Commits (3cd62e4135fb226e19f844cebfe4cabcd8407734)

Author SHA1 Message Date
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