GAE将图像上传到云端接口[Python]

0 投票
2 回答
745 浏览
提问于 2025-04-18 18:45

我对GAE(谷歌应用引擎)还比较陌生,想知道大家通常是怎么通过端点上传图片并存储到Blobstore里的。虽然我看到很多不使用端点的应用示例,但没有找到关于端点的例子。我的想法是先在客户端把图片转换成一种格式,然后通过一个叫messages.BytesField的消息发送到服务器,存储到Blobstore里。我有两个问题:

  1. 这种方法是上传图片到端点的正确方式吗?
  2. 怎么把消息中的BytesField提取出来并存储到Blobstore里?

任何帮助都非常感谢 :)

2 个回答

0

你需要做一些类似这样的事情:

import cloudstorage as gcs

with gcs.open('bucketname/filename', 'w') as f:
  f.write(blob)

blobkey = blobstore.create_gs_key(gc_object_name='bucketname/filename')

print images.get_serving_url(blobkey)

不过,当你把大数据集发送到App Engine时要小心,因为它有一些限制:请求的大小不能超过32MB,处理的时间限制是60秒。而且,当你读取发送的二进制数据时,可能会占用内存,这样你的实例可能会重启,因为它的内存是根据控制台中的配置来限制的。

2

以前可以通过编程的方式把文件上传到Blobstore,但现在这个功能已经不再支持了。

不过,你可以通过编程把文件上传到Cloud Storage,然后再通过Blobstore API来提供这些文件。

所以:

  1. 这种方法是可行的(也就是说是正确的)
  2. 可以查看上面的链接,了解如何在Cloud Storage中创建文件

撰写回答