私が取り組んでいる小さなコマンド ライン ツールの Node でファイルをダウンロードするために、優れたRequestライブラリを使用しています。Request は、単一のファイルをプルする場合は完全に機能しますが、まったく問題はありませんが、ZIP では機能しません。
たとえば、次の URL にあるTwitter Bootstrapアーカイブをダウンロードしようとしています。
http://twitter.github.com/bootstrap/assets/bootstrap.zip
コードの関連部分は次のとおりです。
var fileUrl = "http://twitter.github.com/bootstrap/assets/bootstrap.zip";
var output = "bootstrap.zip";
request(fileUrl, function(err, resp, body) {
if(err) throw err;
fs.writeFile(output, body, function(err) {
console.log("file written!");
}
}
エンコーディングも「バイナリ」に設定しようとしましたが、うまくいきません。実際の zip は ~74KB ですが、上記のコードでダウンロードすると ~134KB になり、Finder でダブルクリックして解凍すると、次のエラーが表示されます。
「bootstrap」を「nodetest」に抽出できません (エラー 21 - ディレクトリです)
これはエンコーディングの問題だと感じていますが、ここからどこに行くべきかわかりません。