- 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 |
||
|---|---|---|
| .. | ||
| integration | ||
| unit | ||
| __init__.py | ||
| conftest.py | ||