Commit c269be90 by ccran

fix: 下载文件文件名为Path的BUG

parent 3286bf78
...@@ -39,7 +39,7 @@ FILE_SUFFIX = "-审核批注" ...@@ -39,7 +39,7 @@ FILE_SUFFIX = "-审核批注"
## 关键参数** ## 关键参数**
use_non_fastgpt_llm = False use_non_fastgpt_llm = False
use_lufa = True use_lufa = False
use_jp_machine = True use_jp_machine = True
## 关键参数** ## 关键参数**
...@@ -60,7 +60,7 @@ else: ...@@ -60,7 +60,7 @@ else:
base_backend_url = "http://192.168.252.71:48080" base_backend_url = "http://192.168.252.71:48080"
else: else:
outer_backend_url = "http://172.21.107.45:48080" outer_backend_url = "http://172.21.107.45:48080"
base_fastgpt_url = "http://172.21.107.45:38080" base_fastgpt_url = "http://172.21.107.45:3030"
base_backend_url = "http://172.21.107.45:48080" base_backend_url = "http://172.21.107.45:48080"
segment_review_api_key = ( segment_review_api_key = (
"fastgpt-vLu2JHAfqwEq5FUQhvATFDK0yDS6fs804v7KwWBMyU4sRrHzh4UGl89Zpa" "fastgpt-vLu2JHAfqwEq5FUQhvATFDK0yDS6fs804v7KwWBMyU4sRrHzh4UGl89Zpa"
......
import asyncio
import json
import sys
import types
from fastapi import HTTPException
from main import DocumentParseRequest, parse_document
PAYLOAD = {
"urls": [
"http://192.168.252.71:48080/admin-api/infra/file/24/get/d7ade63d9599ec4a81b2671df2d8fa48a117cfda96d0396cc8e405d0b9c1a89b.docx"
],
"conversation_id": "0edb7152426b4c298270434f2f8810cd",
"ruleset_id": "金盘",
}
async def main() -> None:
try:
result = await parse_document(DocumentParseRequest(**PAYLOAD))
except HTTPException as exc:
print(
json.dumps(
{
"type": "HTTPException",
"status_code": exc.status_code,
"detail": exc.detail,
},
ensure_ascii=False,
indent=2,
)
)
return
print(result.model_dump_json(indent=2))
if __name__ == "__main__":
asyncio.run(main())
...@@ -85,6 +85,12 @@ def upload_file(path, input_url_to_inner=True, output_url_to_inner=False) -> str ...@@ -85,6 +85,12 @@ def upload_file(path, input_url_to_inner=True, output_url_to_inner=False) -> str
raise Exception(f"上传{path}失败 Response text: {response.text}") raise Exception(f"上传{path}失败 Response text: {response.text}")
def _download_basename(filename: str) -> str:
filename = unquote(filename.strip().strip('"'))
filename = filename.replace("\\", "/")
return Path(filename).name or "downloaded_file"
def _resolve_download_filename(url: str, response: requests.Response) -> str: def _resolve_download_filename(url: str, response: requests.Response) -> str:
content_disposition = response.headers.get("content-disposition", "") content_disposition = response.headers.get("content-disposition", "")
if content_disposition: if content_disposition:
...@@ -92,13 +98,13 @@ def _resolve_download_filename(url: str, response: requests.Response) -> str: ...@@ -92,13 +98,13 @@ def _resolve_download_filename(url: str, response: requests.Response) -> str:
r"filename\*=(?:UTF-8''|utf-8'')?([^;]+)", content_disposition r"filename\*=(?:UTF-8''|utf-8'')?([^;]+)", content_disposition
) )
if match: if match:
return unquote(match.group(1).strip().strip('"')) return _download_basename(match.group(1))
match = re.search(r'filename="?([^";]+)"?', content_disposition) match = re.search(r'filename="?([^";]+)"?', content_disposition)
if match: if match:
return unquote(match.group(1).strip().strip('"')) return _download_basename(match.group(1))
url_filename = Path(urlparse(url).path).name url_filename = _download_basename(urlparse(url).path)
if url_filename: if url_filename:
return url_filename return url_filename
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment