ノードhttps/httpモジュールを使用してファイルをダウンロードしています。私は、ファイルを解凍するunzipモジュールを使用して、次のステップでノードhttpsはURLからファイルを取得し、解凍
https.get(url)
.on('response', (response) => {
response.pipe(fs.createWriteStream(dataDir + filename))
}
:コードは次のようになります。
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