NodeJS 从预先签名的url minio下载文件

zc0qhyus  于 2023-01-20  发布在  Node.js
关注(0)|答案(1)|浏览(353)

我有一个来自minio的包含pdf文件的预签名网址。该网址有效期为24小时。如何从网址下载文件而不保存到本地或服务器,并将文件作为附件发送到nodemailer。

https.get(signedUrl)
     .pipe(fs.createWriteStream('sample.pdf'))
     .on('finish', function () {
      console.log('Downloaded!!');
  });

我试过这个代码,但文件正在保存到本地。有没有办法下载它不保存到本地或服务器。

q9rjltbz

q9rjltbz1#

使用httpnodemailer的示例

https.get(signedUrl, res => {
  transporter.sendMail({
    ..., // Other params
    attachments: [
      {
        filename: 'example.pdf',
        content: res,
      }
    ]
  });
})

如果它是一个数组,我们就必须建立一个attachments数组:

const promises = []
const attachments = [];

for (const url of signedUrl) {
  promises.push(new Promise((resolve, reject) => {
    https.get(url, res => {
      attachments.push({
        filename: 'example.pdf',
        content: res,
      })
      resolve();
    })
  }))
}

await Promise.all(promises);

transporter.sendMail({
  ..., // Other params
  attachments
});

相关问题