|
@@ -8,9 +8,10 @@ from mimetypes import guess_extension, guess_type
|
|
|
from typing import Optional, Union
|
|
|
from uuid import uuid4
|
|
|
|
|
|
-from httpx import get
|
|
|
+import httpx
|
|
|
|
|
|
from configs import dify_config
|
|
|
+from core.helper import ssrf_proxy
|
|
|
from extensions.ext_database import db
|
|
|
from extensions.ext_storage import storage
|
|
|
from models.model import MessageFile
|
|
@@ -94,12 +95,11 @@ class ToolFileManager:
|
|
|
) -> ToolFile:
|
|
|
# try to download image
|
|
|
try:
|
|
|
- response = get(file_url)
|
|
|
+ response = ssrf_proxy.get(file_url)
|
|
|
response.raise_for_status()
|
|
|
blob = response.content
|
|
|
- except Exception as e:
|
|
|
- logger.exception(f"Failed to download file from {file_url}")
|
|
|
- raise
|
|
|
+ except httpx.TimeoutException as e:
|
|
|
+ raise ValueError(f"timeout when downloading file from {file_url}")
|
|
|
|
|
|
mimetype = guess_type(file_url)[0] or "octet/stream"
|
|
|
extension = guess_extension(mimetype) or ".bin"
|