pako javascript CSV сжатие файлов на стороне браузера
Я схожу с ума по этому поводу.
Я занимаюсь разработкой веб-приложения, которое анализирует на сервере загруженные пользователем большие базы данных CSV (5-10 ГБ).
Мне нужно уменьшить время загрузки и использование полосы пропускания, о чем я рассказывал в pako JS ( https://github.com/nodeca/pako), чтобы сжимать файлы на стороне браузера и отправлять их на сервер, и это кажется хорошим решением, но я не могу заставить это работать.
Я скачал pako.js и вставил свой HTML:
<script type="text/javascript" src="{{ url_for('static', filename='js/pako.js') }}"></script>
чтобы прочитать их, я пытался сжать файл HTML:
<input type="file" id="input" style="color: red;"></input>
и добавил div, чтобы показать предупреждение с размером файла:
<div id="dimensioni_button" style="border: 1px solid blue;"></div>
с JS:
document.getElementById("dimensioni_button").onclick = getSize;
function getSize() {
var pako = require('pako');
var selectedFile = document.getElementById('input').files[0];
var compressed_file = pako.gzip(selectedFile);
alert( compressed_file.size );
}
но он просто не работает (он работает, если я использую его без сжатия):
function getSize() {
var selectedFile = document.getElementById('input').files[0];
alert( selectedFile.size );
}
и я попробовал wvwerything. Я красный на документации ( https://github.com/nodeca/pako) о вводе ввода в Uint8Array()
var pako = require('pako');
var input = new Uint8Array();
//... fill input data here
var output = pako.deflate(input);
но я не понимаю, как именно я мог бы конвертировать файл CSV в Uint8 и если это будет работать, на самом деле в этом примере ( https://blog.daftcode.pl/how-to-make-uploading-10x-faster-f5b3f9cfcd52) они просто показывают:
var compressed_file = pako.deflate(input_file);
У кого-нибудь есть подсказка?
Заранее большое спасибо за любую помощь!