Forráskód Böngészése

feat(http-request-executor): enhance file handling in HTTP requests (#9944)

-LAN- 5 hónapja%!(EXTRA string=óta)
szülő
commit
4da0b70694

+ 6 - 2
api/core/workflow/nodes/http_request/executor.py

@@ -33,7 +33,7 @@ class Executor:
     params: Mapping[str, str] | None
     content: str | bytes | None
     data: Mapping[str, Any] | None
-    files: Mapping[str, bytes] | None
+    files: Mapping[str, tuple[str | None, bytes, str]] | None
     json: Any
     headers: dict[str, str]
     auth: HttpRequestNodeAuthorization
@@ -141,7 +141,11 @@ class Executor:
                     files = {k: self.variable_pool.get_file(selector) for k, selector in file_selectors.items()}
                     files = {k: v for k, v in files.items() if v is not None}
                     files = {k: variable.value for k, variable in files.items()}
-                    files = {k: file_manager.download(v) for k, v in files.items() if v.related_id is not None}
+                    files = {
+                        k: (v.filename, file_manager.download(v), v.mime_type or "application/octet-stream")
+                        for k, v in files.items()
+                        if v.related_id is not None
+                    }
 
                     self.data = form_data
                     self.files = files

+ 1 - 1
api/tests/unit_tests/core/workflow/nodes/test_http_request_node.py

@@ -192,7 +192,7 @@ def test_http_request_node_form_with_file(monkeypatch):
 
     def attr_checker(*args, **kwargs):
         assert kwargs["data"] == {"name": "test"}
-        assert kwargs["files"] == {"file": b"test"}
+        assert kwargs["files"] == {"file": (None, b"test", "application/octet-stream")}
         return httpx.Response(200, content=b"")
 
     monkeypatch.setattr(