0
我正在使用節點https/http模塊來下載文件。代碼如下所示:節點https從url獲取文件並解壓縮
https.get(url)
.on('response', (response) => {
response.pipe(fs.createWriteStream(dataDir + filename))
}
在我使用unzip模塊解壓縮文件中的下一個步驟。
fs.createReadStream(dataDir + filename)
.pipe(unzip.Extract({path: dataDir}))
.on('close',() => { something }
.on('error',() => { catch error}
對於大多數情況下,一切正常。但是,有時解壓縮模塊返回此錯誤:
Error: invalid signature: 0x6d74683c
我可以注意到的唯一問題是文件名。我從url抓取文件名。這是一個url的最後一個參數。但是,在某些情況下,確切的文件名與url中顯示的文件名不同。例如:
https://github.com/request/request/archive/master.zip
在URL中顯示的名稱是master.zip
,但是當我下載它的名字是request-master.zip
。
這是實際的問題嗎?如果是這樣,我該如何解決它?
謝謝你的迴應。我會先嚐試yauzl。 – zhangjinzhou