Spaces:
Running
Running
File size: 1,091 Bytes
21db53c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
from app.Services.lifespan_service import LifespanService
from app.Services.storage.base import BaseStorage
from app.Services.storage.disabled_storage import DisabledStorage
from app.Services.storage.local_storage import LocalStorage
from app.Services.storage.s3_compatible_storage import S3Storage
from app.config import config, StorageMode
class StorageService(LifespanService):
def __init__(self):
self.active_storage = None
match config.storage.method:
case StorageMode.LOCAL:
self.active_storage = LocalStorage()
case StorageMode.S3:
self.active_storage = S3Storage()
case StorageMode.DISABLED:
self.active_storage = DisabledStorage()
case _:
raise NotImplementedError(f"Storage method {config.storage.method} not implemented. "
f"Available methods: local, s3")
async def on_load(self):
await self.active_storage.on_load()
async def on_exit(self):
await self.active_storage.on_exit()
|