curo1305
bcb887e61d
feat(05-03): implement OneDriveBackend — Microsoft Graph StorageBackend
- 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)
2026-05-28 21:10:56 +02:00
..
2026-05-22 19:35:38 +02:00
2026-05-28 17:10:52 +02:00
2026-05-25 18:48:32 +02:00
2026-05-23 20:05:34 +02:00
2026-05-25 18:30:28 +02:00
2026-05-28 21:00:48 +02:00
2026-05-28 21:10:56 +02:00
2026-05-25 18:50:50 +02:00
2026-05-28 21:07:18 +02:00
2026-05-24 11:30:56 +02:00
2026-05-25 18:50:50 +02:00
2026-05-28 20:48:38 +02:00
2026-05-22 08:53:28 +02:00
2026-05-25 18:48:02 +02:00
2026-05-22 08:53:28 +02:00
2026-05-28 20:48:38 +02:00