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 @@
 }})
-
Сверка договоров 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