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);

У кого-нибудь есть подсказка?

Заранее большое спасибо за любую помощь!

0 ответов

Другие вопросы по тегам