【问题标题】:Is there a way to overwrite existing Blobs in the blobstore有没有办法覆盖 blobstore 中的现有 Blob
【发布时间】:2011-10-26 22:11:43
【问题描述】:

我正在使用 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. 用户上传图片,应用引擎通过以下方式生成链接 获取服务网址
  2. 然后用户可以在我的应用程序之外使用该链接,例如链接到它 在他们的博客上显示图片
  3. 如果稍后在我的应用程序中更改该图像(旋转等),我会 喜欢他们的图片链接以反映这些变化

【问题讨论】:

    标签: image google-app-engine blobstore


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      这只是我的看法,希望对你有帮助!

      【讨论】:

        猜你喜欢
        • 2020-08-29
        • 2018-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-25
        • 1970-01-01
        • 2020-08-02
        • 1970-01-01
        相关资源
        最近更新 更多