如何从 google 云函数向最终用户发送超过 4kb 的数据

How to send more than 4kb from google cloud function to end user

我编写了一个应用程序,允许用户上传带有手写文本的图像,现在 he/she 应该接收提取的文本作为 'normal'(数字)文本。

目前,我将图像上传到 google 云存储桶,然后触发 云函数,调用愿景 api。愿景 api 然后 returns 云函数内部的 JSON 结果。

现在我的问题是:如何将 JSON 结果发送回客户端?

...
errorInfo: {
    code: 'messaging/invalid-argument',
    message: 'Request contains an invalid argument.' 
}

如何将我的云函数的“大”结果发送回客户端?

非常感谢任何帮助!感谢您抽出时间,如果有任何不清楚或遗漏的地方,我很乐意尽快添加信息。

不要使用 FCM 将视觉的实际负载 API 发送给用户。相反,将有效负载存储在云存储或云数据库(例如 Firebase 的 Firestore 或实时数据库)中,并通过数据 属性 中的 FCM 将位置发送给用户。然后,您的应用程序代码可以获取该数据 属性,并在用户准备好时读取实际的 API 响应。

GCS 通常可以方便地绕过大型物体。您可以将请求重定向到 GCS 中的任何大型对象。

  1. 如果是 public,只需将 Location: https://storage.googleapis.com/%3Cbucket-name%3E/some-path/some-file.json 传递给调用者
  2. 如果文件是私有的,创建一个短暂的 signed URL,然后像上面那样重定向到它。

这样您就不需要通过 GCF 流式传输文件,甚至不需要为此阅读文件。让 GCS CDN 为您代劳。