Десериализация больших BLOB-объектов из Blobstore

Я храню большие BLOB-объекты в хранилище данных. Это файлы XML размером до 20 Мб. Хорошо хранить один XML-файл размером 20 Мб, но проблема возникает, когда мне нужно его не сериализовать.

Есть все виды ограничений к этому:

  • Я не могу прочитать больше, чем 1 МБ из Blobstore
  • даже если бы я мог, я все еще сталкиваюсь с ограничением в 5 МБ ОЗУ (так как мне нужно поместить весь XML в ОЗУ перед его десериализацией)

Как бы вы сказали, я могу справиться с этим? Я открыт для всех видов решений, но, надеюсь, не то, что связано с использованием другого хостинг-провайдера.

2 ответа

Решение

Вы должны переключиться на Sax Parser, передавая данные из Blobstore с помощью класса BlobstoreInputStream.
Эти библиотеки должны помочь вам избежать ограничения памяти GAE.

Перейти с GAE BackEnd у них нет настраиваемого ограничения памяти.

Другие вопросы по тегам