2016-02-09 61 views
0

考虑Google云端存储的图片(头像)上传者,该头像将从用户的网络浏览器开始,然后通过Go appengine实例处理标准压缩/裁剪等,然后然后将产生的图像作为云存储的对象将appengine界面的上传大小限制为云存储

我怎样才能确保AppEngine实例处理不被过多或坏的数据超载?换句话说,我想我问两个问题(或可能不会):

  1. 如何限制允许在单个请求被发送到AppEngine实例处理的数据量,或者是已经存在默认安全限制?

  2. 我如何可以验证数据,以确保它试图与标准去图像库处理前适当JPG/PNG/GIF?

+1

FWIW(至少在python)如果使用Blob存储区API(其可以工件W/GCS)有可能限制上传的尺寸和与所述PIL LIB能够处理整个前检查图像尺寸/格式图像(以限制处理成本)。 GAE Image API可以将上传的图像(已经限制在文件大小)调整为可接受的图像大小/格式,可以存储在GCS中供以后使用,同时删除上传的图像 - 节省存储空间:http://stackoverflow.com/questions/ 33875366 /。但我不熟悉'go',不知道它是否支持这种方法。 –

+0

您应该使用Blob存储区API为@丹说。并且,当您创建UploadURL时,您可以设置最大上传大小。 – Sean

回答

0
  1. 所有App Engine的要求仅限于32MB。

  2. 您可以查看文件的大小,上传开始前被上传。

  3. 你可以verify the file's mime-type只允许正确的文件上传。

+1

其实,你可以做的不仅仅是检查的文件扩展名。 看一看https://golang.org/pkg/net/http/#DetectContentType。 – fl0cke