【发布时间】:2019-06-04 01:21:07
【问题描述】:
使用 Azure 函数应用,我希望能够从不同的 url 下载图像到特定文件夹,压缩它们并将压缩文件发送回响应中。
我可以通过以下步骤来实现:
- 文件请求
- 在本地保存文件
- 使用压缩目录
- 存档读取压缩文件,将其转换为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
};
有没有更好的方法来做到这一点?
【问题讨论】:
标签: javascript node.js zip azure-functions