使用 node-fetch 下载一些图像时遇到问题。这只发生在 Windows 上(osx 工作正常),并且具有特定的 url。
起初,我认为它与 node-fetch 本身有关,但在剥离我的代码以将示例发布到他们的问题页面时,我“修复”了这个问题:
这适用于 OSX,但仅在 Windows 上下载部分图像:
async function main2() {
let url = 'https://www.chanel.com/images/q_auto,f_jpg,fl_lossy,dpr_2/w_1920/les-beiges-swatch-186587-8808323285022.jpg'
response = await fetch(url);
const file = fs.createWriteStream('test2.jpg');
await new Promise((resolve, reject)=>{
response.body.pipe(file);
response.body.on('end', resolve);
response.body.on('error', reject);
})
file.close();
}
这适用于 Windows 和 OSX:
async function main() {
let url = 'https://www.chanel.com/images/q_auto,f_jpg,fl_lossy,dpr_2/w_1920/les-beiges-swatch-186587-8808323285022.jpg'
response = await fetch(url);
const file = fs.createWriteStream('test.jpg');
response.body.pipe(file);
response.body.on('end', file.close);
}
那么我的问题是:
- 为什么我用这两个片段得到不同的结果
- 为什么不同的网址会得到不同的结果
谢谢!