如何从Firebase文件夹的Cloud Functions中读取证书文件

时间:2019-01-24 22:57:25

标签: javascript firebase google-cloud-functions

我正在尝试读取certs文件夹下的文件,如下所示:

-functions
 |
--certs
  |
---idp-public-cert.perm

这是我用来读取文件的代码:

fs.readFileSync(path.join(__dirname, 'certs/idp-public-cert.pem'))

运行该函数时,出现以下错误:

Error: ENOENT: no such file or directory, open '/srv/lib/certs/idp-public-cert.pem'

我将不胜感激任何机组人员如何做到这一点。预先感谢。

2 个答案:

答案 0 :(得分:1)

只需使用相对路径certs/idp-public-cert.pem读取文件即可。所有相对路径将相对于您部署的功能文件夹进行解释。不要尝试建立文件的完整路径,因为您不应该假设代码部署已有效地安装在服务器实例中。

答案 1 :(得分:0)

我发现用“ ./”或“ /”指定路径是很困难的-因为它需要从某个地方(例如OLDPWD或PWD)获取相对补丁,所以不确定它如何弄乱 但是我发现正确的解决方法是添加 路径的__dirname。 __dirname将给出functions目录的路径。 因此,如果您的函数位于/ home / username / firebase / functions / routes中,则__dirname会向您显示。 因此,如果您有一个文件/ home / username / firebase / abc /,则必须指定: fs.readFileSync(__ dirname +“ ../ abc /”

希望这可以节省其他人的时间!!我为此浪费了很多时间,这实在令人沮丧,并且因为不阅读文档而踢自己!