为了账号安全,请及时绑定邮箱和手机立即绑定

使用 golang 的云触发功能在 firebase 中进行项目间文件传输

使用 golang 的云触发功能在 firebase 中进行项目间文件传输

Go
莫回无 2023-08-07 19:08:47
我正在尝试在两个项目之间传输文件。我设法创建一个服务帐户,并授予对源项目中存储的读取权限和对目标项目中存储的写入权限。我在源项目中创建了一个存储触发器函数,它将在创建时读取文件。现在我的要求是将相同的文件复制到目标项目。我从在线示例中复制了这段代码,它可以在同一项目中的存储桶之间复制文件。我想在两个不同的项目之间实现相同的目标。这可能吗?TIA。
查看完整描述

3 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

如果您正确添加了所有权限,则此代码应该可以工作。

GCS 存储桶不作为其路径中的子资源绑定到项目,仅用于计费和删除。从同一项目或不同项目访问它们不需要更改代码。


查看完整回答
反对 回复 2023-08-07
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

实现这一目标没有任何困难。向您的函数的服务帐户(默认帐户或您在部署时明确设置的帐户)授予存储对象创建者角色。我建议您仅在存储桶上授予服务帐户,而不是在项目级别上授予服务帐户,以保持最窄的授权范围。

我还建议您在环境变量中设置源存储桶和目标存储桶,以提高敏捷性。

此外,您的move函数可以重用copyToBucket然后执行删除。这是为了减少代码重复。即使您必须为文件目标名称添加参数。

关于您的文件的最后一句话已读。请注意文件的大小,对于您的函数分配的内存来说不要太大。现在,你什么也不做。拿到手有用吗?


查看完整回答
反对 回复 2023-08-07
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

您必须Add在项目B中创建项目A的云功能服务帐户并授予存储权限。

查看完整回答
反对 回复 2023-08-07
  • 3 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信