GAE将图像上传到云端接口[Python]
我对GAE(谷歌应用引擎)还比较陌生,想知道大家通常是怎么通过端点上传图片并存储到Blobstore里的。虽然我看到很多不使用端点的应用示例,但没有找到关于端点的例子。我的想法是先在客户端把图片转换成一种格式,然后通过一个叫messages.BytesField的消息发送到服务器,存储到Blobstore里。我有两个问题:
- 这种方法是上传图片到端点的正确方式吗?
- 怎么把消息中的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来提供这些文件。
所以:
- 这种方法是可行的(也就是说是正确的)
- 可以查看上面的链接,了解如何在Cloud Storage中创建文件