From 38476cfeb8dcc6aff8e3be97654e411131820bf9 Mon Sep 17 00:00:00 2001 From: ManishMadan2882 Date: Tue, 22 Apr 2025 00:57:57 +0530 Subject: [PATCH] (gfeat:storage) get storage instance based on settings --- application/storage/storage_creator.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/application/storage/storage_creator.py b/application/storage/storage_creator.py index dcf64983..3eca2f47 100644 --- a/application/storage/storage_creator.py +++ b/application/storage/storage_creator.py @@ -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())