|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import os |
|
from enum import Enum |
|
|
|
from rag.utils.azure_sas_conn import RAGFlowAzureSasBlob |
|
from rag.utils.azure_spn_conn import RAGFlowAzureSpnBlob |
|
from rag.utils.minio_conn import RAGFlowMinio |
|
from rag.utils.s3_conn import RAGFlowS3 |
|
|
|
|
|
class Storage(Enum): |
|
MINIO = 1 |
|
AZURE_SPN = 2 |
|
AZURE_SAS = 3 |
|
AWS_S3 = 4 |
|
|
|
|
|
class StorageFactory: |
|
storage_mapping = { |
|
Storage.MINIO: RAGFlowMinio, |
|
Storage.AZURE_SPN: RAGFlowAzureSpnBlob, |
|
Storage.AZURE_SAS: RAGFlowAzureSasBlob, |
|
Storage.AWS_S3: RAGFlowS3, |
|
} |
|
|
|
@classmethod |
|
def create(cls, storage: Storage): |
|
return cls.storage_mapping[storage]() |
|
|
|
|
|
STORAGE_IMPL_TYPE = os.getenv('STORAGE_IMPL', 'MINIO') |
|
STORAGE_IMPL = StorageFactory.create(Storage[STORAGE_IMPL_TYPE]) |
|
|