Angular 5 Загрузка контента GZip
Я использую Angular 5 на стороне клиента. У меня есть большой текстовый контент, который мне нужно загрузить на сервер, используя мой API. Я пытаюсь передать заголовок Content-Encoding: gzip и отправить сжатое содержимое на сервер из Angular 5.
Я попытался исследовать несколько библиотек gzip, таких как pako, zlib и т. Д., И ни одна из игр не работала (отсутствующие типы) с TypeScript. Есть ли хорошие библиотеки gzip, которые я могу использовать с TypeScript?
Спасибо
2 ответа
Для использования pako выполните следующий список действий:
- Установить пако -
npm install pako
Или
bower install pako
- Добавьте эту строку в свой ts файл
import { inflate, deflate, gzip, ungzip } из 'pako';
И где вы хотите сжать свой массив:
const options = {
level: 9,
name: 'hello-world.txt',
timestamp: parseInt(Date.now() / 1000, 10)
};
const binaryString = gzip(JSON.stringify(options), { to: 'string' });
console.log(binaryString.length);
//
// Here you can do base64 encode, make xhr requests and so on.
//
const restored = JSON.parse(ungzip(binaryString, { to: 'string' }));
console.log(restored);
Сайт пако:
https://nodeca.github.io/pako/
Важная информация для отправки gzip на сервер:
Сжатие исходящих запросов в Angular 2+
Удачи!
При использовании Angular/Typescript вам также необходимо запустить команду npm i --save-dev @types/pako, чтобы использовать Pako.
npm установить пако
npm я --save-dev @types/pako