#image #google-app-engine #blobstore
#изображение #google-app-engine #blobstore
Вопрос:
Я использую высокопроизводительную функцию обслуживания изображений в App Engine для обслуживания изображений из blobstore. Однако я бы хотел, чтобы пользователи могли изменять эти изображения (например, поворачивать, обрезать и т.д.), А затем записывать эти изменения обратно в blobstore, перезаписывая исходный blob. Я знаю, что могу записывать новые двоичные объекты в blobstore, как описано здесь: http://code.google.com/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore
но я не вижу способа перезаписать существующие большие двоичные объекты. Возможно ли это в App Engine?
Мой вариант использования выглядит следующим образом:
- Пользователь загружает изображение, и app engine генерирует ссылку через get_serving_url
- Затем пользователь может использовать эту ссылку за пределами моего приложения, например, ссылку на нее в своем блоге для отображения изображения
- Если это изображение будет изменено позже в моем приложении (поворот и т.д.), Я бы хотел, чтобы их ссылка на изображение отражала эти изменения
Ответ №1:
Файлы, хранящиеся в blobstore, являются неизменяемыми, после их записи они не могут быть изменены (только обслуживаются или удаляются).
Ответ №2:
Я думаю, вам следует попытаться создать свой собственный контроллер для создания файла, обслуживающего URL-адрес — В хранилище данных каждая запись BLOB-файла имеет собственный идентификатор (вы управляете им) и идентификатор версии — для первой загрузки установите новый идентификатор и версию — Когда пользователь изменит ваше изображение, сохраните новый blobstore, сохраните ID и установите новое поле версии
В обслуживающем контроллере генерируется ссылка по идентификатору, когда пользователь вызывает ее, получает новейшую версию для обслуживания
Это просто мое мнение, надеюсь, оно полезно!