diff --git a/api/config.py b/api/config.py index d602db5c2c..04328b0007 100644 --- a/api/config.py +++ b/api/config.py @@ -22,6 +22,7 @@ DEFAULTS = { 'SERVICE_API_URL': 'https://api.dify.ai', 'APP_WEB_URL': 'https://udify.app', 'FILES_URL': '', + 'S3_ADDRESS_STYLE': 'auto', 'STORAGE_TYPE': 'local', 'STORAGE_LOCAL_PATH': 'storage', 'CHECK_UPDATE_URL': 'https://updates.dify.ai', @@ -181,6 +182,7 @@ class Config: self.S3_ACCESS_KEY = get_env('S3_ACCESS_KEY') self.S3_SECRET_KEY = get_env('S3_SECRET_KEY') self.S3_REGION = get_env('S3_REGION') + self.S3_ADDRESS_STYLE = get_env('S3_ADDRESS_STYLE') self.AZURE_BLOB_ACCOUNT_NAME = get_env('AZURE_BLOB_ACCOUNT_NAME') self.AZURE_BLOB_ACCOUNT_KEY = get_env('AZURE_BLOB_ACCOUNT_KEY') self.AZURE_BLOB_CONTAINER_NAME = get_env('AZURE_BLOB_CONTAINER_NAME') diff --git a/api/extensions/ext_storage.py b/api/extensions/ext_storage.py index 497ce5d2b7..3a8e314d92 100644 --- a/api/extensions/ext_storage.py +++ b/api/extensions/ext_storage.py @@ -7,6 +7,7 @@ from typing import Union import boto3 from azure.storage.blob import AccountSasPermissions, BlobServiceClient, ResourceTypes, generate_account_sas +from botocore.client import Config from botocore.exceptions import ClientError from flask import Flask @@ -27,7 +28,8 @@ class Storage: aws_secret_access_key=app.config.get('S3_SECRET_KEY'), aws_access_key_id=app.config.get('S3_ACCESS_KEY'), endpoint_url=app.config.get('S3_ENDPOINT'), - region_name=app.config.get('S3_REGION') + region_name=app.config.get('S3_REGION'), + config=Config(s3={'addressing_style': app.config.get('S3_ADDRESS_STYLE')}) ) elif self.storage_type == 'azure-blob': self.bucket_name = app.config.get('AZURE_BLOB_CONTAINER_NAME')