From 4c3dd84b325a0d0fe0c7a012d30adbfa550ce082 Mon Sep 17 00:00:00 2001 From: orenzhang Date: Sun, 23 Feb 2025 20:31:08 +0800 Subject: [PATCH] feat(s3): support for s3 virtual path style --- backend/open_webui/config.py | 2 ++ backend/open_webui/storage/provider.py | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index 5e0e4f0a1..ef73fe1e1 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -678,6 +678,8 @@ S3_REGION_NAME = os.environ.get("S3_REGION_NAME", None) S3_BUCKET_NAME = os.environ.get("S3_BUCKET_NAME", None) S3_KEY_PREFIX = os.environ.get("S3_KEY_PREFIX", None) S3_ENDPOINT_URL = os.environ.get("S3_ENDPOINT_URL", None) +S3_USE_ACCELERATE_ENDPOINT = os.environ.get("S3_USE_ACCELERATE_ENDPOINT", None) +S3_ADDRESSING_STYLE = os.environ.get("S3_ADDRESSING_STYLE", None) GCS_BUCKET_NAME = os.environ.get("GCS_BUCKET_NAME", None) GOOGLE_APPLICATION_CREDENTIALS_JSON = os.environ.get( diff --git a/backend/open_webui/storage/provider.py b/backend/open_webui/storage/provider.py index 160a45153..95ba83b6f 100644 --- a/backend/open_webui/storage/provider.py +++ b/backend/open_webui/storage/provider.py @@ -5,6 +5,7 @@ from abc import ABC, abstractmethod from typing import BinaryIO, Tuple import boto3 +from botocore.config import Config from botocore.exceptions import ClientError from open_webui.config import ( S3_ACCESS_KEY_ID, @@ -13,6 +14,8 @@ from open_webui.config import ( S3_KEY_PREFIX, S3_REGION_NAME, S3_SECRET_ACCESS_KEY, + S3_USE_ACCELERATE_ENDPOINT, + S3_ADDRESSING_STYLE, GCS_BUCKET_NAME, GOOGLE_APPLICATION_CREDENTIALS_JSON, AZURE_STORAGE_ENDPOINT, @@ -98,6 +101,12 @@ class S3StorageProvider(StorageProvider): endpoint_url=S3_ENDPOINT_URL, aws_access_key_id=S3_ACCESS_KEY_ID, aws_secret_access_key=S3_SECRET_ACCESS_KEY, + config=Config( + s3={ + "use_accelerate_endpoint": S3_USE_ACCELERATE_ENDPOINT, + "addressing_style": S3_ADDRESSING_STYLE, + }, + ), ) self.bucket_name = S3_BUCKET_NAME self.key_prefix = S3_KEY_PREFIX if S3_KEY_PREFIX else ""