From cb69549803e8dd7f978252e54ecb2f43f951f2df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Thu, 18 Jun 2026 06:26:56 +0400 Subject: [PATCH] =?UTF-8?q?v2.0.2:=20fix=20base64=20(apply=E2=86=92=D1=87?= =?UTF-8?q?=D0=B0=D0=BD=D0=BA=D0=B8=2032KB),=20socket=5Ftimeout=3D10=20Red?= =?UTF-8?q?is?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- site/redis_client.py | 1 + site/templates/upload.html | 10 ++++++++-- v2/init.py | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/site/redis_client.py b/site/redis_client.py index a4c9e81..0a59bd3 100644 --- a/site/redis_client.py +++ b/site/redis_client.py @@ -15,6 +15,7 @@ def _get(): password=os.getenv("REDIS_PASS", "aLITloRefJEiCPqUc2xB"), decode_responses=True, socket_connect_timeout=5, + socket_timeout=10, ) return _r diff --git a/site/templates/upload.html b/site/templates/upload.html index f9751e1..b8cbd6e 100644 --- a/site/templates/upload.html +++ b/site/templates/upload.html @@ -60,7 +60,7 @@
Nubes - Сверка договоров v2.0.1 + Сверка договоров v2.0.2
@@ -164,7 +164,13 @@ reader.onload = function() { var buffer = reader.result; var bytes = new Uint8Array(buffer); - var b64 = btoa(String.fromCharCode.apply(null, bytes)); + // Чанковая конвертация в base64 — apply не тянет >125K аргументов + var b64Chunks = []; + var B64_CHUNK = 0x8000; // 32768 bytes + for (var bi = 0; bi < bytes.length; bi += B64_CHUNK) { + b64Chunks.push(String.fromCharCode.apply(null, bytes.subarray(bi, bi + B64_CHUNK))); + } + var b64 = btoa(b64Chunks.join('')); var checksum = SparkMD5.ArrayBuffer.hash(buffer); var CHUNK = 30 * 1024; var totalChunks = Math.ceil(b64.length / CHUNK); diff --git a/v2/init.py b/v2/init.py index b4ca5f9..6825cd8 100644 --- a/v2/init.py +++ b/v2/init.py @@ -18,6 +18,7 @@ def get_redis(): password=os.getenv("REDIS_PASS", "aLITloRefJEiCPqUc2xB"), decode_responses=True, socket_connect_timeout=5, + socket_timeout=10, ) return _r