Есть ли способ перезаписать существующие BLOB-объекты в Blobstore? - PullRequest
1 голос
/ 27 октября 2011

Я использую функцию высокопроизводительной обработки изображений в App Engine, чтобы обрабатывать изображения из магазина. Однако я бы хотел, чтобы пользователи могли изменять эти изображения (например, поворачивать, обрезать и т. Д.), А затем записывать эти изменения обратно в магазин блогов, перезаписывая исходный блоб. Я знаю, что могу писать в новые BLOB-объекты в магазине, как описано здесь: http://code.google.com/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore

но я не вижу способа перезаписать существующие капли. Это возможно в App Engine?

Мой пример использования следующий:

  1. Пользователь загружает изображение, а механизм приложений генерирует ссылку через get_serving_url
  2. Пользователь может затем использовать эту ссылку за пределами моего приложения, например, ссылка на него в своем блоге, чтобы отобразить изображение
  3. Если это изображение будет изменено позже в моем приложении (поворот и т. Д.), Я бы нравится их ссылка на изображение, чтобы отразить эти изменения

Ответы [ 2 ]

7 голосов
/ 27 октября 2011

Файлы, хранящиеся в хранилище блогов, являются неизменными, после того как они были записаны, их нельзя изменить (только обработать или удалить).

0 голосов
/ 15 марта 2013

Я думаю, вам следует попытаться создать свой собственный контроллер для создания URL-адреса для обслуживания файлов. В Datastore каждая запись blobFile имеет собственный идентификатор (вы управляете им) и идентификатор версии - для первой загрузки установите новый идентификатор и версию - когда пользователь изменит свойimage, сохранить новое хранилище BLOB-объектов, сохранить идентификатор и установить поле новой версии

В обслуживающем контроллере генерировать ссылку по iD, когда пользователь вызывает ее, получить самую новую версию для обслуживания

Это только мое мнение, надеюсьэто полезно!

...