Node JS无法从github url正确下载文件

时间:2017-01-19 07:39:29

标签: javascript node.js github

我想从github下载文件。我使用this question and it's answer as example

我写这段代码:

var downloadPath = './downloads/picasso.zip';
var file = fs.createWriteStream(downloadPath);

https.get('https://github.com/square/picasso/archive/master.zip', function (response) {
    response.pipe(file);

    file.on('finish', function() {
        file.close();
        console.log("DONE LOADING");
    })
}).on('error', function (err) {

    console.log("ERROR " + err.message);
    fs.unlink(downloadPath);
});

当我启动此代码时,它向我DONE LOADING说,理论上,这意味着下载了zip文件。但是,当我尝试打开此zip文件时,我的归档程序说该文件已损坏且只有1KB。

为什么会这样? github是否根据我的请求标题以某种方式限制下载?那么为什么错误不会抛出?

1 个答案:

答案 0 :(得分:3)

wget file

您可以看到HTTP状态代码302,表示它重定向到其他地址codeload.github.com/square/picasso/zip/master

因此,您应该将代码中的链接替换为上面显示的正确地址,然后您将获得正确的文件。

right file

现在文件是1.2M