使用 Azure 函数应用程序,我希望能够将图像从不同的 url 下载到特定文件夹,压缩它们并将 zip 文件发送回响应。
我可以按照以下步骤实现这一点:
请求文件
将文件保存到本地
使用压缩目录
存档器读取压缩文件,将其转换为 base64
在响应正文中发送缓冲区
下载并保存图像
const img = await request(url, { encoding: "binary" });
fs.writeFile(filesName, data, "binary", err => {
if (err) {
reject(`Error while writing the file; ${err}`);
} else {
resolve(data);
}
});
压缩目录,读取压缩文件并发送响应
const target = await zipDirectory(dirName, targetFile);
context.log('Target ' + targetFile);
const rawFile = await readFile(targetFile);
const fileBuffer = Buffer.from(rawFile, "base64");
context.res = {
body: fileBuffer,
headers: {
"Content-Disposition": `filename=target.zip`,
"Content-Type": "application/zip"
},
status: 202
};
有一个更好的方法吗?
相关分类