有没有办法覆盖blobstore中的现有Blob

时间:2011-10-26 22:11:44

标签: image google-app-engine blobstore

我正在使用App Engine中的高性能图像服务功能来提供blobstore中的图像。但是,我希望用户能够修改这些图像(例如旋转,裁剪等),然后将这些更改写回blobstore,覆盖原始blob。我知道我可以写入blobstore中的新blob,如下所示:http://code.google.com/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore

但我没有看到覆盖现有blob的方法。这在App Engine中是否可行?

我的用例如下:

  1. 用户上传图片,应用引擎生成链接 get_serving_url
  2. 然后,用户可以在我的应用之外使用该链接,例如链接到它 在他们的博客上显示图像
  3. 如果稍后我的应用程序(旋转等)更改了该图像,我会 喜欢他们的图片链接以反映这些变化

2 个答案:

答案 0 :(得分:7)

存储在blobstore中的文件一旦写入就不可变,而不能更改(仅提供或删除)。

答案 1 :(得分:0)

我认为您应该尝试构建自己的控制器以生成文件服务URL   - 在Datastore中,每个blobFile记录都有自己的ID(您管理它)和版本ID   - 首次上传时,设置新ID和版本   - 当用户更改图像时,保存新的blobstore,保留ID并设置新版本字段

在iD服务控制器生成链接时,当用户调用它时,获取服务的最新版本

这只是我的意见,希望它有所帮助!