小编Amb*_* B.的帖子

Google Cloud Platform HTTP功能是否支持路由参数?

这个问题比我喜欢来这里的问题要简单一些,但是我一直在试图寻找答案,我绝对不能 -

Google Cloud Platform HTTP功能是否支持路由参数,如此处所示?http://expressjs.com/en/guide/routing.html#route-parameters

具体来说,我看到谷歌云平台HTTP功能似乎使用Express作为基础,但我看到的任何功能的所有功能都已经运行了req和res参数而没有别的.我可以访问正文中的数据,但这不允许我从路径中提取参数,例如在传递给"/ users /:userId/books /:bookId"的请求中查找书籍ID.我无法看到如何将它们填充到req.params中,而无法指定路径的哪个部分对应于此处的名称.

我知道我总是可以用另一种方式传递它们,但这更干净,更符合我们想要使用的设置,所以我真的希望尽可能让它工作.有没有办法做到这一点,我完全失踪或根本不支持?

google-cloud-platform google-cloud-functions

8
推荐指数
1
解决办法
2793
查看次数

使用 Google Cloud Functions 发送过大的响应时出现“错误:无法处理请求”

这里有一点上下文:目前,我们正在使用 Google Cloud Datastore 在我们的应用程序中存储许多不同类型的记录,并且我们正在使用 Google Cloud Functions 返回来自各种类型的所有记录。我们通过 HTTP 请求执行此操作,因此这是一个 HTTP 触发器。就在昨晚,我们遇到了一个问题,当我们所有field同类记录的总大小太大时,我们的端点突然失败并显示“错误:无法处理请求”。

我们对此的包装器相当简单:我们的端点接受种类的类型作为路径参数,运行带有该种类所有记录的过滤器的数据存储查询,然后用于res.send发送查询的结果。

起初,这似乎是交易规模超过谷歌提供的限制的问题。但是,当我添加更多日志记录时,我确定查询确实正确地找到了所有字段记录,没有发生任何意外;然而,不知什么原因,它在 的最后一步坏了res.status(200).send(resultsArr);

这显然与发送回的响应的大小有关,因为降低所有实体的总大小是成功的。在这一点上,我唯一能想到的是res.send不会发回这种大小的响应,但是在谷歌搜索时我找不到关于这些限制的任何信息。

有没有人遇到过这样的事情?有谁知道对此有什么好的预期解决方案?我知道我们可以在有限制的情况下多次调用端点,但我担心这是一个问题。遇到查询大小的限制是一回事,但我没想到res.send它会在这里限制我们。

(编辑:是的,响应超过 10MB。如果您需要帮助确定这是否是您的问题,您可以使用以下内容进行验证:

let size = Buffer.from(JSON.stringify(resultsArr)).length; console.log('Attempting to send response of size:', size);)

google-cloud-datastore google-cloud-functions

3
推荐指数
1
解决办法
2045
查看次数

如何通过socket.io将实时音频从浏览器传输到Google Cloud Speech?

我有一个基于React的应用程序的情况,我有一个输入,我也希望允许语音输入.我可以将它与Chrome和Firefox兼容,所以我想使用getUserMedia.我知道我将使用Google Cloud的Speech to Text API.不过,我有几点需要注意:

  1. 我想这是我的流音频数据的,不只是当我做记录.这意味着我发现的很多解决方案都不会很好用,因为它不足以保存文件然后将其发送到Google Cloud Speech.
  2. 我不相信我的前端有我的Google Cloud API信息.相反,我已经在后端运行了一个具有我的凭据的服务,我想将音频(实时)流式传输到后端,然后从后端流传输到Google Cloud,然后将更新发送到我的成绩单他们回到了前端.
  3. 我已经使用socket.io连接到该后端服务,我想通过套接字完全管理它,而不必使用Binary.js或类似的东西.

似乎没有一个关于如何做到这一点的好教程.我该怎么办?

socket.io google-cloud-speech

3
推荐指数
1
解决办法
2982
查看次数