获取压缩文件的内容

时间:2019-03-09 02:11:27

标签: javascript typescript axios fetch jszip

下面的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

如何使用React / JavascriptTypescript应用程序的zip文件中读取文件的内容?

0 个答案:

没有答案