Изображения, предоставляемые из BlobStore, имеют несколько преимуществ по сравнению с Datastore:
Изображения подаются напрямую из BlobStore, поэтому запрос не проходит через экземпляр внешнего интерфейса GAE.Таким образом, вы экономите на времени экземпляров внешнего интерфейса и, следовательно, на стоимости.
Стоимость хранилища BlobStore составляет примерно половину стоимости хранилища данных (0,13 против 0,24 долл. США).В Datastore вы дополнительно платите за get () или query ().
BlobStore автоматически использует службу кэширования Google, поэтому единственной стоимостью является стоимость полосы пропускания (0,12 долл. США / ГБ).Вы также можете установить это для экземпляра веб-интерфейса через элемент управления кэшем, но разница в том, что это делается автоматически для BlobStore.
Изображения в BlobStore могут обслуживаться через ImageService и могут иметь значение преобразован на лету , например, создание миниатюр.Преобразованные изображения также автоматически кэшируются.
Двоичные двоичные объекты в хранилище данных ограничены размером 1 МБ.
Один недостаток BlobStore заключается в том, что он имеетнет контроля доступа.Любой, у кого есть URL для блоба, может скачать его.Если вам нужен ACL (список контроля доступа), взгляните на Облачное хранилище Google .
Обновление:
В отношении затрат будет достигнута самая большая экономияот правильного кэширования изображений:
- Каждое изображение должно иметь постоянный URL.
Каждый URL-адрес изображения должен быть снабжен соответствующими заголовками HTTP для управления кэшем:
// 32M seconds is a bit more than one year
Cache-Control: max-age=32000000, must-revalidate
Вы можете сделать это в Java с помощью:
httpResponse.setHeader("Cache-Control", "max-age=32000000, must-revalidate");
Обновление 2:
Как правильно указывает Дэн в комментариях, данные BlobStore передаются через экземпляр внешнего интерфейса, поэтому контроль доступа может быть реализован с помощью кода пользователя.