2024-11-07 04:30:46 +00:00
|
|
|
from urllib.parse import urlparse
|
|
|
|
from open_webui.config import USER_DATA_DIR
|
2024-10-21 06:38:26 +00:00
|
|
|
|
2024-11-07 00:03:58 +00:00
|
|
|
from open_webui.storage.base_storage_provider import StorageProvider
|
|
|
|
from open_webui.storage.local_storage_provider import LocalStorageProvider
|
|
|
|
from open_webui.storage.s3_storage_provider import S3StorageProvider
|
2024-10-21 05:53:45 +00:00
|
|
|
|
2024-11-06 06:30:33 +00:00
|
|
|
def get_storage_provider() -> StorageProvider:
|
2024-11-07 04:30:46 +00:00
|
|
|
if USER_DATA_DIR.lower().startswith("s3://"):
|
|
|
|
parsed_url = urlparse(USER_DATA_DIR)
|
|
|
|
bucket_name = parsed_url.netloc
|
|
|
|
prefix = parsed_url.path.lstrip('/')
|
|
|
|
return S3StorageProvider(bucket_name, prefix)
|
2024-11-06 06:30:33 +00:00
|
|
|
else:
|
2024-11-07 04:30:46 +00:00
|
|
|
return LocalStorageProvider(USER_DATA_DIR)
|
2024-11-06 23:13:32 +00:00
|
|
|
|
2024-11-06 06:30:33 +00:00
|
|
|
Storage = get_storage_provider()
|