如何使用Google App Engine将图片上传到Google Cloud Storage?

5

我正在尝试找到通过 Google App Engine 将图像上传到 Google Cloud Storage 的方法。

我已经查看了以下内容:

使用 Google App Engine 将图像发送到谷歌云存储

使用 Google App Engine 将图像/视频上传到 Google Cloud Storage

它们都展示了如何使用 BlobStore API 进行操作。

当我查看 BlobStore API 时:https://cloud.google.com/appengine/docs/python/blobstore/

他们提醒我们使用 Google Cloud Storage。BlobStore 的当前状态如何?将来是否会得到支持?

我看到了一个图像上传的例子:https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/appengine/standard/blobstore/main.py,该例子使用了 BlobStore API。

有没有一个在 Google App Engine 中使用 Google Cloud Storage 的例子呢?


1
示例使用签名 URL:https://github.com/voscausa/appengine-gcs-upload - voscausa
这可能是您正在寻找的:https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/app-engine-cloud-storage-sample - ChrisC73
3个回答

6
通过App Engine上传图片有三个问题:
首先,它非常低效。您正在使用您的App Engine实例小时来简单地将数据从用户的浏览器传递到Google Cloud Storage。
其次,它更慢(再次,因为您使用了中介)。
最后,App Engine不支持流式传输,所有请求都限制在32MB。
最好的选择是使用其中一个上传选项直接将文件上传到Cloud Storage。

云函数上运行Python代码云函数python。我想将一个image文件上传到Google Cloud Storage。我使用PIL将图像保存为.jpg格式的缓冲区。buffer = BytesIO() out.save(buffer,format="PNG") out = buffer.getvalue() 我能否将此out替换为此问题中的'image' - Santhosh

3

1
我已经点赞了上面的答案,因为如果可能的话,您应该尽量避免通过App Engine传递数据。如果您真的需要从Python的App Engine上传图像(或任何其他数据)到Google Cloud Storage,则答案就是如ChrisC73所指出的使用GoogleAppEngineCloudStorageClient,因为Python运行时没有内置的Cloud Storage API。
相比之下,PHP运行时具有标准文件系统功能的内置支持Google Cloud Storage。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接