【问题标题】:How to pass an image as argument to a HTTPs callable function?如何将图像作为参数传递给 HTTPs 可调用函数?
【发布时间】:2021-01-05 21:47:41
【问题描述】:

我想将图像从客户端传递到我的 https 可调用函数...

到目前为止,我一直在做的是:

  1. 将图片上传到存储中
  2. 然后,使用存储映像的引用作为参数调用我的函数
  3. 在后台下载图片

但是,这会消耗三个操作:写入、云函数调用和图像读取...

因此,由于我需要尽可能快地执行此操作,因此我认为可以在调用我的云函数时将图像作为参数传递......(传递的文件不应该有 10MB 的限制,图片可以有 30MB)。

有可能吗?怎么样?

【问题讨论】:

  • 1) 您当前的方法是大多数情况下的正确方法。 2)图像有多大? Cloud Functions 的限制为 (IIRC) 32 MB。 3) 使用 HTTP POST 将图像发送到 Cloud Functions。使用 curl 的示例: curl -X POST "REGION-PROJECT-ID.cloudfunctions.net/FUNCTION_NAME" -H "Content-Type:application/json" --data '{"Name":"filename", "数据":"Base64-Encoded-Image-Data"}'
  • 实际上 Cloud Functions 的传入负载限制为 10 MB @JohnHanley。 cloud.google.com/functions/quotas#resource_limits
  • @DougStevenson - 谢谢。 32 MB 用于 App Engine/Cloud Run。我应该通过评论来查找限制。

标签: javascript google-cloud-platform google-cloud-firestore google-cloud-functions google-cloud-storage


【解决方案1】:

如果您需要无限大小的文件,您将无法通过 Cloud Functions 上传,后者的传入负载限制为 10 MB。

考虑改为在存储上传完成后立即运行 storage trigger。然后该函数可以选择下载文件以使用它。使用 Cloud Functions,您的下载量也将被限制为小于函数实例可用的总内存大小(因为唯一的可写磁盘空间由实际内存支持)。

【讨论】:

    猜你喜欢
    • 2015-05-19
    • 2021-07-27
    • 2013-01-27
    • 2013-01-20
    • 2020-12-18
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多