猿问

使用节点在 Azure 函数中发送 zip 文件作为响应的最佳方式?

使用 Azure 函数应用程序,我希望能够将图像从不同的 url 下载到特定文件夹,压缩它们并将 zip 文件发送回响应。

我可以按照以下步骤实现这一点:

  1. 请求文件

  2. 将文件保存到本地

  3. 使用压缩目录

  4. 存档器读取压缩文件,将其转换为 base64

  5. 在响应正文中发送缓冲区

下载并保存图像

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

};

有一个更好的方法吗?


呼如林
浏览 127回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答