refactor(common.storage): drop sync storage abstraction and example_usage

The async-only direction was already the only one used in production:
* create_storage never accepted mode=sync; build_storage_config always
  emitted mode=async; zero callers referenced StorageBackend / SyncData
  / S3StorageBackend.sync / LocalStorageBackend.sync anywhere.
* Drop the parallel sync base class, the sync concrete classes in
  backends/local.py and backends/s3.py, and the boto3 dependency.
* Drop example_usage.py (zero importers; demonstration code, not part
  of the public surface).
* Rename LocalAsyncStorageBackend -> LocalStorageBackend,
  S3AsyncStorageBackend -> S3StorageBackend to reflect the single
  remaining class per type.
* Tighten create_storage: any mode=... key now raises StorageConfigError
  with the new pointer (settings.storage_backend controls behavior).
* Cleanup call sites: schedule.application.service.build_object_store
  no longer passes mode=async to create_storage.
* Cosmetic touch-ups in backend/services/storage.py and
  common/config.py docstrings where they still said "boto3" instead of
  "S3 client".

Public API surface preserved: AsyncStorageBackend / ObjectMeta /
create_storage / build_storage_config / register_backend all keep
their names and call signatures. backend tests: 136 passed.
This commit is contained in:
tao.chen
2026-09-02 10:10:41 +08:00
committed by tao.chen
parent b171c52822
commit ba874579d3
11 changed files with 81 additions and 541 deletions
@@ -210,7 +210,6 @@ def build_object_store(bucket_name: str | None = None) -> Any:
return create_storage(
{
"type": "local",
"mode": "async",
"base_dir": str(
Path(settings.local_storage_base_dir) / "version"
),
@@ -219,7 +218,6 @@ def build_object_store(bucket_name: str | None = None) -> Any:
return create_storage(
{
"type": "s3",
"mode": "async",
"bucket": bucket_name or settings.s3_version_bucket,
"endpoint_url": settings.s3_endpoint,
"aws_access_key_id": settings.s3_access_key,