|
@@ -7,6 +7,7 @@ from typing import Any
|
|
|
from uuid import uuid4
|
|
|
|
|
|
import httpx
|
|
|
+import magic
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
from configs import dify_config
|
|
@@ -47,6 +48,13 @@ def guess_file_info_from_response(response: httpx.Response):
|
|
|
# If guessing fails, use Content-Type from response headers
|
|
|
mimetype = response.headers.get("Content-Type", "application/octet-stream")
|
|
|
|
|
|
+ # Use python-magic to guess MIME type if still unknown or generic
|
|
|
+ if mimetype == "application/octet-stream":
|
|
|
+ try:
|
|
|
+ mimetype = magic.from_buffer(response.content[:1024], mime=True)
|
|
|
+ except magic.MagicException:
|
|
|
+ pass
|
|
|
+
|
|
|
extension = os.path.splitext(filename)[1]
|
|
|
|
|
|
# Ensure filename has an extension
|