首页 > 解决方案 > 在可调用的 Firebase 函数中保存对 Firebase 存储的 DocRaptor 响应

问题描述

我正在尝试将模板发送到DocRaptor,然后取回 pdf 并将其保存在 Firebase 存储位置。我的问题是 DocRaptor 返回 PDF 的二进制数据,而不是类似于 pdf 的链接。我正在尝试将其转换为缓冲区以保存在存储中,但是,当它保存文件时,它会将其保存为 application/octet-stream 类型而不是 application/pdf。

/* DOCRAPTOR PDF GENERATOR */
export const createPdfFile = functions.https.onCall((data, context) => {
  const config = {
    url: 'https://docraptor.com/docs',
    encoding: null,
    headers: {
      'Content-Type' : 'application/json'
    },
    json: {
      user_credentials: docRaptorKey,
      doc: {
        document_content: data.content,
        type: "pdf",
        test: sandboxMode
      }
    }
  }
  return new Promise((resolve, reject) => {
    requestModule.post(config, (err, response, body) => {
      if(!err) {
        let buffer = new Buffer(body, "binary");
        bucket.file(data.path).save(buffer).then((results) => {
          resolve(response);
        }).catch((error) => {
          reject(error);
        });
      } else {
        reject(err);
      }
    });
  }).then((response) => {
    return {'results':response}
  }).catch((error) => {
    throw new functions.https.HttpsError('unknown', error);
  });
});

标签: firebasegoogle-cloud-functionsgoogle-cloud-storage

解决方案


推荐阅读