Angular 5 Загрузка контента GZip

Я использую Angular 5 на стороне клиента. У меня есть большой текстовый контент, который мне нужно загрузить на сервер, используя мой API. Я пытаюсь передать заголовок Content-Encoding: gzip и отправить сжатое содержимое на сервер из Angular 5.

Я попытался исследовать несколько библиотек gzip, таких как pako, zlib и т. Д., И ни одна из игр не работала (отсутствующие типы) с TypeScript. Есть ли хорошие библиотеки gzip, которые я могу использовать с TypeScript?

Спасибо

2 ответа

Для использования pako выполните следующий список действий:

  1. Установить пако -
npm install pako

Или

bower install pako

  1. Добавьте эту строку в свой 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

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