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

我正在尝试在两个项目之间传输文件。我设法创建一个服务帐户,并授予对源项目中存储的读取权限和对目标项目中存储的写入权限。我在源项目中创建了一个存储触发器函数,它将在创建时读取文件。现在我的要求是将相同的文件复制到目标项目。

我从在线示例中复制了这段代码,它可以在同一项目中的存储桶之间复制文件。我想在两个不同的项目之间实现相同的目标。这可能吗?TIA。


莫回无
浏览 143回答 3
3回答

波斯汪

如果您正确添加了所有权限,则此代码应该可以工作。GCS 存储桶不作为其路径中的子资源绑定到项目,仅用于计费和删除。从同一项目或不同项目访问它们不需要更改代码。

一只萌萌小番薯

实现这一目标没有任何困难。向您的函数的服务帐户(默认帐户或您在部署时明确设置的帐户)授予存储对象创建者角色。我建议您仅在存储桶上授予服务帐户,而不是在项目级别上授予服务帐户,以保持最窄的授权范围。我还建议您在环境变量中设置源存储桶和目标存储桶,以提高敏捷性。此外,您的move函数可以重用copyToBucket然后执行删除。这是为了减少代码重复。即使您必须为文件目标名称添加参数。关于您的文件的最后一句话已读。请注意文件的大小,对于您的函数分配的内存来说不要太大。现在,你什么也不做。拿到手有用吗?

哈士奇WWW

您必须Add在项目B中创建项目A的云功能服务帐户并授予存储权限。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go