我有一个关于由存储桶上的事件触发的Google函数的问题(我正在用Python开发它)。
我必须读取触发事件的桶上的文件的数据( PDF文件),并且我正在寻找传递给我的函数(数据、上下文)的事件对象上的文件有效载荷,但是该对象上似乎没有有效负载。
我必须使用云存储库从存储桶中获取文件吗?有办法直接从触发函数的上下文中获取有效载荷吗?
恩里科
发布于 2020-05-31 12:39:17
从检查Firebase文档中的更多完整示例来看,文件的有效负载似乎没有包含在参数中。这是有意义的,因为没有人知道这个文件有多大,而这个文件刚刚完成,如果这甚至适合于您的函数运行时的内存。
因此,您必须根据元数据中的信息,使用单独的调用从桶中获取文件。完全Firebase示例通过以下方式从其上下文/数据中获取文件名和其他信息:
exports.generateThumbnail = functions.storage.object().onFinalize(async (object) => {
const fileBucket = object.bucket; // The Storage bucket that contains the file.
const filePath = object.name; // File path in the bucket.
const contentType = object.contentType; // File content type.
const metageneration = object.metageneration; // Number of times metadata has been generated. New objects have a value of 1.
...
我看看能不能找到一个更完整的例子。但我希望它同样适用于原始的Google函数,Firebase封装这些函数,甚至在使用Python时也是如此。
更新:从这个Python绑定显然是基于的存储/功能/PubSub文档来看,路径应该以data['resource']
或data['name']
的形式可用。
https://stackoverflow.com/questions/62121161
复制相似问题