Javascript 下载API返回的映像
我正在使用sportradar api。我正在进行的api调用返回一个png图像。到现在为止,我已经做到了Javascript 下载API返回的映像,javascript,rest,api,blob,axios,Javascript,Rest,Api,Blob,Axios,我正在使用sportradar api。我正在进行的api调用返回一个png图像。到现在为止,我已经做到了 const apiCall = (url) => { return axios.get(url).then((data) => { if(data){ return Promise.resolve(data); } else{
const apiCall = (url) => {
return axios.get(url).then((data) => {
if(data){
return Promise.resolve(data);
}
else{
return Promise.reject();
}
});
}
//all data in data.assetlist
for(let i=0; i<data.assetlist.length; i++){
let imageLink = data.assetlist[i].links[12].href;
let url = `https://api.sportradar.us/nfl-images-p3/ap_premium${imageLink}?api_key=${api_key}`;
apiCall(url).then((data) => {
console.log(data);
let blob = new Blob(data, {type: "image/png"}); // didn't compile with this line
});
}
我没有这样做,因为我担心数据太大,可能会使我的系统(旧笔记本)崩溃。如果我做得对,我想知道如何将此blob文件作为png文件保存到我的系统中,如果没有,我想知道如何将此数据流转换为图像,并将其下载并保存到本地目录中。如果您获得的图像已经是blob,则可以使用此库下载它:
我认为你不应该如此担心尺寸,只要去做就行了。经过大量研究,我找到了这个解决方案,它成功了
apiCall(url).then((response) => {
response.data.pipe(fs.createWriteStream('test.jpg'));
});
使用小型ImageDos axios.get know运行测试以将响应视为binary?节点的文件系统模块
let FileSaver = require('file-saver');
FileSaver.saveAs(blob, "my_image.png");
apiCall(url).then((response) => {
response.data.pipe(fs.createWriteStream('test.jpg'));
});