在Firebase Cloud Function项目下评估文件夹使用情况

时间:2018-05-03 06:33:57

标签: firebase google-cloud-storage google-cloud-functions

我希望在assets文件夹下有一个functions文件夹(也许它也有一些子文件夹),其中包含多个图像文件。我根据数据库操作将assets文件夹(或其中一个子文件夹)的部分或全部内容复制到使用该特定db操作指定的Firebase存储位置。 (或在temp文件夹下进行编辑,然后再将其发送到云存储位置)

这可能吗?我无法找到任何相关信息。

我知道我可以将这些资产置于Firebase存储之下,我只想将它们保留在functions下,以保持我的项目结构清洁。此外,存储的云功能区域中的任何操作都是按文件进行的,没有批量文件夹操作。

更新

确实有可能,在使用自定义子文件夹时,需要在云函数中使用正确的文件/文件夹位置。我将在空闲时间之后写下答案。

1 个答案:

答案 0 :(得分:1)

我尝试了上述解决方案,但失败了

您可以将文件转换为base64,然后将其转换为函数的顶部,可以将bas64文件转换为文件,并将其保存在os.tmpdir()中,然后在函数的任何位置使用它。

以下是我如何将字体放入云函数中以供以后使用的示例

function writeFontsInTempDir() {
  const banglaFont = 'Your base64'
  fs.writeFileSync(path.join(os.tmpdir(), 'bangla_font.ttf'), banglaFont, {encoding: 'base64'});

  const englishFont= 'Your base64'
  fs.writeFileSync(path.join(os.tmpdir(), 'english_font.ttf'), englishFont, {encoding: 'base64'});
}

为了以后使用,您可以致电

const bangla_font_path = path.join(os.tmpdir(), 'bangla_font.ttf');
const english_font_path = path.join(os.tmpdir(), 'english_font.ttf');

您将需要这些进口

import * as os from 'os';
import * as path from 'path';