繁体   English   中英

如何从谷歌云 function 向最终用户发送超过 4kb 的数据

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

我写了一个应用程序,它允许用户上传带有手写文本的图像,现在他/她应该将提取的文本作为“普通”(数字)文本接收。

目前,我将图像上传到谷歌云存储桶,然后触发云 function ,调用愿景 api。愿景 api 然后返回云 function 内部的JSON结果。

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

  • 我试过FCM,但是vision api的JSON响应超过4000字节,所以消息发送失败。 (我还需要识别文本的坐标)。 出现以下错误:
...
errorInfo: {
    code: 'messaging/invalid-argument',
    message: 'Request contains an invalid argument.' 
}
  • 我听说过 PubSub,但正如他们在此处所描述的那样,它不适合用于服务到客户端的通信 或者这是一个永远不会少的选择?

如何将云 function 中的“大”结果发送回客户端?

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

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

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

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

这样您就不需要通过 GCF stream 文件,甚至不需要阅读它。 让 GCS CDN 为您完成这项工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM