Open1

Cloud FunctionsでCloud Storageにファイルを保存するとき

shosho
functions.http('myHttpFunction', (req, res) => {
  const base64data = req.body.message.data;

  if (!base64data) {
    console.log("failed recieving data.");
    res.send('error')
  }

  const currentTime = dayjs().format("YYYY-MM-DDTHH:mm:ss");

  const jsonString = Buffer.from(base64data, 'base64');
  const json = JSON.parse(jsonString);
  const { date, title } = json;
  // 下記のように、' / ' で区切られた文字列をファイル名に指定することで自動的にフォルダが作成される
  const fileName = `${date}/${date}-${currentTime}-${title}.json`
  console.log(fileName);

  const storage = new Storage();
  const myBucket = storage.bucket(process.env.SAVE_TARGET_STORAGE);
  const file = myBucket.file(fileName);
  const contents = jsonString;
  file.save(contents).then(function() {});

  res.send('OK');
});

参考

https://github.com/googleapis/nodejs-storage/issues/111