Десериализация больших BLOB-объектов из Blobstore
Я храню большие BLOB-объекты в хранилище данных. Это файлы XML размером до 20 Мб. Хорошо хранить один XML-файл размером 20 Мб, но проблема возникает, когда мне нужно его не сериализовать.
Есть все виды ограничений к этому:
- Я не могу прочитать больше, чем 1 МБ из Blobstore
- даже если бы я мог, я все еще сталкиваюсь с ограничением в 5 МБ ОЗУ (так как мне нужно поместить весь XML в ОЗУ перед его десериализацией)
Как бы вы сказали, я могу справиться с этим? Я открыт для всех видов решений, но, надеюсь, не то, что связано с использованием другого хостинг-провайдера.
2 ответа
Решение
Вы должны переключиться на Sax Parser, передавая данные из Blobstore с помощью класса BlobstoreInputStream.
Эти библиотеки должны помочь вам избежать ограничения памяти GAE.
Перейти с GAE BackEnd у них нет настраиваемого ограничения памяти.