(gfeat:storage) get storage instance based on settings

This commit is contained in:
ManishMadan2882
2025-04-22 00:57:57 +05:30
parent e9a6044645
commit 38476cfeb8

View File

@@ -4,6 +4,7 @@ from typing import Dict, Type
from application.storage.base import BaseStorage
from application.storage.local import LocalStorage
from application.storage.s3 import S3Storage
from application.core.settings import settings
class StorageCreator:
@@ -12,6 +13,16 @@ class StorageCreator:
"s3": S3Storage,
}
_instance = None
@classmethod
def get_storage(cls) -> BaseStorage:
if cls._instance is None:
storage_type = getattr(settings, "STORAGE_TYPE", "local")
cls._instance = cls.create_storage(storage_type)
return cls._instance
@classmethod
def create_storage(cls, type_name: str, *args, **kwargs) -> BaseStorage:
storage_class = cls.storages.get(type_name.lower())