Получить содержимое zip-файла - PullRequest
1 голос
/ 09 марта 2019

Это URL ниже указывает на zip-файл, который содержит файл с именем bundlesizes.json. Я пытаюсь прочитать содержимое этого json файла в моем React приложении (без node сервер / сервер)

https://dev.azure.com/uifabric/cd9e4e13-b8db-429a-9c21-499bf1c98639/_apis/build/builds/8838/artifacts?artifactName=drop&api-version=4.1&%24format=zip

Я смог получить содержимое файла zip, выполнив следующее

const url =
  'https://dev.azure.com/uifabric/cd9e4e13-b8db-429a-9c21-499bf1c98639/_apis/build/builds/8838/artifacts?artifactName=drop&api-version=4.1&%24format=zip';
const response = await Axios({
  url,
  method: 'GET',
  responseType: 'stream'
});
console.log(response.data);

При этом выдается zip-файл (non-ascii символов). Тем не менее, я хочу прочитать содержимое файла bundlesizes.json внутри него.

Для этого я посмотрел jszip и попробовал следующее:

var zip = new JSZip();
zip.createReader(
  new zip.BlobReader(response.data),
  function(reader: any) {
    // get all entries from the zip
    reader.getEntries(function(entries: any) {
      if (entries.length) {
        // get first entry content as text
        entries[0].getData(
          new zip.TextWriter(),
          function(text: any) {
            // text contains the entry data as a String
            console.log(text);

            // close the zip reader
            reader.close(function() {
              // onclose callback
            });
          },
          function(current: any, total: any) {
            // onprogress callback
            console.log(current);
            console.log(total);
          }
        );
      }
    });
  },
  function(error: any) {
    // onerror callback
    console.log(error);
  }
);

Тем не менее, это не работает для меня, и ошибки. Это ошибка, которую я получаю

enter image description here

Как я могу прочитать содержимое файла внутри zip в моем приложении React, используя Javascript / Typescript?

...