GAE的blobstore初步体验
尝试了一下GAE的blobstore,这个还是试验状态下的GAE新特性。
Blobstore的工作方式有些和想象的不一样,基本步骤如下:
1. 首先调用create_upload_url(url), 返回一个url, 这个url是临时的,并且只能用一次。 参数url是在这个upload完成后被redirect的url.
我测试产生的一个url样子是这样的: /_ah/upload/agtjb29rbW9tLWFwcHIbCxIVX19CbG9iVXBsb2FkU2Vzc2lvbl9fGAEM
2. 向这个产生出来的url POST数据
3. 完成后GAE返回一个302 redirect, 转向到调用create_upload_url的参数的url.
4. 这以后前面生成的临时url就失效了。被转向的url有刚刚 保存下来的blob的key.
Upload到server上的blob在开发环境下表现为一个叫做__blobinfo__的kind, 其中包含upload的数据,给出的文件名等。
---
目前看起来这个还非常初级阶段,除了upload的数据尺寸限制得以了突破外,其他并没有太大的优势。 blob一旦upload后,除了获取、删除外不能进行其他操作。Image()可以直接从blob_key来创建,但是操作后的图片如果要保存进去似乎没有办法,只能自己再post一个回去。
这和过去支持的方式来比我觉得几乎没有什么价值,首先在数据保存入datastore前没法做任何预处理,其次后期处理数据后不能直接存回去。此外create_upload_url()每次产生临时url也是有问题的,在某些场合下,比如需要批量upload图片,就非常不便。
---
希望google能尽快改进,拿出个能和Amazon S3至少有可比性的东西来,目前这个状态,还不如放宽些数据尺寸限制让应用自己来做呢。 当然google这种方式也许考虑到用专门的服务器组来处理upload,这样可以获得更好的性能和scalability. 其实我需要的不多,只要有个类似Amazon S3的基本功能就ok了。
现在这个阶段,这个blobstore基本还没有什么实用价值,估计google也会把这个给彻底改掉,所有没有什么价值继续考虑即使是试验性的支持了。
Related posts:
- Google Wave game over了...
- 我的Nexus One坏了~ :(
- 升级我的Nexus One到Android 2.2 FroYo
- Google/Aardvark 作恶新举证?试图把social media推广方式注册为专利!
- Adsense使用了Google Search history
- Looking for partners to attend Startup Weekend Seattle in Mar 19-21
- Nexus One的轨迹球存在的意义
- app-engine-patch is now officially dead
- GMail 自动显示了flickr的照片!
- Google Buzz使用随感
Search related in web: