From 0d266d43c273e834712bb704b211fb9566e6d4f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Tue, 23 Jun 2026 15:11:52 +0400 Subject: [PATCH] v1.0.152: base64 chunks (parser expects base64) --- chunk.cfm | 2 +- deploy/convert_server.py | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/chunk.cfm b/chunk.cfm index 79031ca..823edd8 100644 --- a/chunk.cfm +++ b/chunk.cfm @@ -73,7 +73,7 @@ INSERT INTO documents (filename, mime_type, original_bytes, status) - VALUES (,,decode(,'hex'),'uploaded') + VALUES (,,decode(,'base64'),'uploaded') SELECT id FROM documents WHERE filename= AND status='uploaded' ORDER BY created_at DESC LIMIT 1 diff --git a/deploy/convert_server.py b/deploy/convert_server.py index 0c43ea5..cd1f473 100755 --- a/deploy/convert_server.py +++ b/deploy/convert_server.py @@ -290,7 +290,7 @@ class Handler(BaseHTTPRequestHandler): def _handle_upload(self): """Принять файл и передать в Lucee чанками (лимит ingress ~30KB).""" - import uuid + import uuid, base64 from email.parser import BytesParser content_type = self.headers.get("Content-Type", "") @@ -333,7 +333,7 @@ class Handler(BaseHTTPRequestHandler): "chunk_index": i, "total_chunks": total, "filename": filename, - "data": chunk.hex(), + "data": base64.b64encode(chunk).decode(), }, ) if r.status_code != 200: @@ -481,21 +481,27 @@ class Handler(BaseHTTPRequestHandler): if ext not in ('docx', 'doc', 'pdf'): continue - content_hex = "\\x" + content.hex() + import base64 as b64 + content_b64 = b64.b64encode(content).decode() resp = httpx.post( f"{LUCEE_URL}/upload.cfm", - data={"filename": name, "data": content_hex}, + data={"filename": name, "data": content_b64}, timeout=30 ) if resp.status_code == 200: rj = resp.json() if rj.get("OK"): - results.append({ + entry = { "filename": name, "doc_id": rj.get("DOC_ID", ""), "contract_id": rj.get("CONTRACT_ID", ""), "size": len(content), - }) + } + # Парсинг PDF на VM + parsed = self._parse_file(name, content) + if parsed: + entry["parsed"] = parsed + results.append(entry) else: results.append({"filename": name, "error": rj.get("ERROR", "upload failed")}) else: