bcb887e61d
- CloudConnectionError imported from google_drive_backend (shared exception type) - CHUNK_SIZE = 10 * 1024 * 1024 (10 MB — above Graph 4 MB limit, Pitfall 6) - All 7 StorageBackend methods implemented as async coroutines - Resumable upload sessions (createUploadSession) used for ALL uploads - _ensure_valid_token() checks expiry with 60s buffer, calls _refresh_token() if expired - _refresh_token() wraps msal.ConfidentialClientApplication in asyncio.to_thread() - invalid_grant → CloudConnectionError(reason='invalid_grant') per D-06 / B2 design - presigned_get_url and generate_presigned_put_url raise NotImplementedError (D-14) - delete_object silently ignores 404 (no-op per StorageBackend contract) - Backend is stateless — no DB writes (B2 design)