这个问题困扰了两三天,目前一步一步分析出来应该是解压的问题。请问此文件到底是什么解压方式?该如何通过工具解压?
文件示例: https://api.bilibili.com/x/v1/dm/list.so?oid=71163662
部分 Header:
Content-Encoding: deflate
Content-Type: text/xml
Transfer-Encoding: chunked
Accept-Encoding: gzip, deflate, br
最初:采用 Aria2 下载时,已添加 --http-accept-gzip,但依旧报错,incorrect header check
Exception: [AbstractCommand.cc:350] errorCode=1 URI=https://api.bilibili.com/x/v1/dm/list.so?oid=71163662 -> [GZipDecodingStreamFilter.cc:110] errorCode=1 libz::inflate() failed. cause:incorrect header check
已尝试的方法:
① curl -O url --compressed,成功解压,文件正常显示!唯一成功的途径。
② bandzip 为文件损坏,gzip 为 not in gzip format
③ fs.readFile('1.gz', function(err, data){ console.log(data) })
Buffer 94 bd 5b 73 5c 49 72 26 f8 57 30 78 18 d3 8c 38 47 e1 11 ee 1e 11 36 25 68 6a ba 5b 9a b5 51 4b 6d dd db 3b ad 7d 59 4b 24 12 dd 1c 75 b1 ca ea 22 55 ...
④ node.js:Gunzip/Inflate, Error: incorrect header check
const fs = require('fs'), zlib = require('zlib') fs.createReadStream('./1.gz').pipe(zlib.createGunzip()).pipe(fs.createWriteStream('1.xml')) console.log("文件解压完成。")
希望大家可以帮忙看看,感激不尽!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.