Co-authored-by: crazywoola <427733928@qq.com>
This commit is contained in:
@@ -17,6 +17,11 @@ APP_WEB_URL=http://127.0.0.1:3000
|
|||||||
# Files URL
|
# Files URL
|
||||||
FILES_URL=http://127.0.0.1:5001
|
FILES_URL=http://127.0.0.1:5001
|
||||||
|
|
||||||
|
# INTERNAL_FILES_URL is used for plugin daemon communication within Docker network.
|
||||||
|
# Set this to the internal Docker service URL for proper plugin file access.
|
||||||
|
# Example: INTERNAL_FILES_URL=http://api:5001
|
||||||
|
INTERNAL_FILES_URL=http://127.0.0.1:5001
|
||||||
|
|
||||||
# The time in seconds after the signature is rejected
|
# The time in seconds after the signature is rejected
|
||||||
FILES_ACCESS_TIMEOUT=300
|
FILES_ACCESS_TIMEOUT=300
|
||||||
|
|
||||||
|
@@ -237,6 +237,13 @@ class FileAccessConfig(BaseSettings):
|
|||||||
default="",
|
default="",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
INTERNAL_FILES_URL: str = Field(
|
||||||
|
description="Internal base URL for file access within Docker network,"
|
||||||
|
" used for plugin daemon and internal service communication."
|
||||||
|
" Falls back to FILES_URL if not specified.",
|
||||||
|
default="",
|
||||||
|
)
|
||||||
|
|
||||||
FILES_ACCESS_TIMEOUT: int = Field(
|
FILES_ACCESS_TIMEOUT: int = Field(
|
||||||
description="Expiration time in seconds for file access URLs",
|
description="Expiration time in seconds for file access URLs",
|
||||||
default=300,
|
default=300,
|
||||||
|
@@ -21,7 +21,9 @@ def get_signed_file_url(upload_file_id: str) -> str:
|
|||||||
|
|
||||||
|
|
||||||
def get_signed_file_url_for_plugin(filename: str, mimetype: str, tenant_id: str, user_id: str) -> str:
|
def get_signed_file_url_for_plugin(filename: str, mimetype: str, tenant_id: str, user_id: str) -> str:
|
||||||
url = f"{dify_config.FILES_URL}/files/upload/for-plugin"
|
# Plugin access should use internal URL for Docker network communication
|
||||||
|
base_url = dify_config.INTERNAL_FILES_URL or dify_config.FILES_URL
|
||||||
|
url = f"{base_url}/files/upload/for-plugin"
|
||||||
|
|
||||||
if user_id is None:
|
if user_id is None:
|
||||||
user_id = "DEFAULT-USER"
|
user_id = "DEFAULT-USER"
|
||||||
|
@@ -9,9 +9,10 @@ from configs import dify_config
|
|||||||
|
|
||||||
def sign_tool_file(tool_file_id: str, extension: str) -> str:
|
def sign_tool_file(tool_file_id: str, extension: str) -> str:
|
||||||
"""
|
"""
|
||||||
sign file to get a temporary url
|
sign file to get a temporary url for plugin access
|
||||||
"""
|
"""
|
||||||
base_url = dify_config.FILES_URL
|
# Use internal URL for plugin/tool file access in Docker environments
|
||||||
|
base_url = dify_config.INTERNAL_FILES_URL or dify_config.FILES_URL
|
||||||
file_preview_url = f"{base_url}/files/tools/{tool_file_id}{extension}"
|
file_preview_url = f"{base_url}/files/tools/{tool_file_id}{extension}"
|
||||||
|
|
||||||
timestamp = str(int(time.time()))
|
timestamp = str(int(time.time()))
|
||||||
|
@@ -35,9 +35,10 @@ class ToolFileManager:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def sign_file(tool_file_id: str, extension: str) -> str:
|
def sign_file(tool_file_id: str, extension: str) -> str:
|
||||||
"""
|
"""
|
||||||
sign file to get a temporary url
|
sign file to get a temporary url for plugin access
|
||||||
"""
|
"""
|
||||||
base_url = dify_config.FILES_URL
|
# Use internal URL for plugin/tool file access in Docker environments
|
||||||
|
base_url = dify_config.INTERNAL_FILES_URL or dify_config.FILES_URL
|
||||||
file_preview_url = f"{base_url}/files/tools/{tool_file_id}{extension}"
|
file_preview_url = f"{base_url}/files/tools/{tool_file_id}{extension}"
|
||||||
|
|
||||||
timestamp = str(int(time.time()))
|
timestamp = str(int(time.time()))
|
||||||
|
@@ -47,6 +47,11 @@ APP_WEB_URL=
|
|||||||
# ensuring port 5001 is externally accessible (see docker-compose.yaml).
|
# ensuring port 5001 is externally accessible (see docker-compose.yaml).
|
||||||
FILES_URL=
|
FILES_URL=
|
||||||
|
|
||||||
|
# INTERNAL_FILES_URL is used for plugin daemon communication within Docker network.
|
||||||
|
# Set this to the internal Docker service URL for proper plugin file access.
|
||||||
|
# Example: INTERNAL_FILES_URL=http://api:5001
|
||||||
|
INTERNAL_FILES_URL=
|
||||||
|
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
# Server Configuration
|
# Server Configuration
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
|
@@ -11,6 +11,7 @@ x-shared-env: &shared-api-worker-env
|
|||||||
APP_API_URL: ${APP_API_URL:-}
|
APP_API_URL: ${APP_API_URL:-}
|
||||||
APP_WEB_URL: ${APP_WEB_URL:-}
|
APP_WEB_URL: ${APP_WEB_URL:-}
|
||||||
FILES_URL: ${FILES_URL:-}
|
FILES_URL: ${FILES_URL:-}
|
||||||
|
INTERNAL_FILES_URL: ${INTERNAL_FILES_URL:-}
|
||||||
LOG_LEVEL: ${LOG_LEVEL:-INFO}
|
LOG_LEVEL: ${LOG_LEVEL:-INFO}
|
||||||
LOG_FILE: ${LOG_FILE:-/app/logs/server.log}
|
LOG_FILE: ${LOG_FILE:-/app/logs/server.log}
|
||||||
LOG_FILE_MAX_SIZE: ${LOG_FILE_MAX_SIZE:-20}
|
LOG_FILE_MAX_SIZE: ${LOG_FILE_MAX_SIZE:-20}
|
||||||
|
Reference in New Issue
Block a user