Я новичок в Mongodb, теперь я хочу вставить pdf-файл размером 3 МБ с помощью драйвера JAVA и изменить размер фрагмента с 256 на 1 МБ, а затем получить второй фрагмент, скажем, 2-ю страницу PDF-документа. Как я могу это сделать. Спасибо.
Как изменить размер фрагмента и получить определенный фрагмент в MongoDB Gridfs?
Ответы (1)
Как правило, после того как документ был записан в GridFS, вам потребуется переписать его (удалить и снова сохранить), чтобы изменить размер фрагмента.
Поскольку GridFS ничего не знает о формате данных в файле, она не может помочь вам перейти на «2-ю страницу». Реализация InputStream
, возвращаемая из GridFSDBFile
, избегает чтения блоков при использовании метода skip(long)
. Если вы знаете, что «2-я страница» занимает N байтов в файле, вы можете пропустить это количество байтов в потоке и начать чтение.
ХТХ, Роб
P.S. Помните, что skip(long) возвращает количество фактически пропущенных байтов. Вы не должны предполагать, что skip(12) всегда пропускает 12 байт.
P.P.S. Начать чтение с середины PDF-файла и понять, что там есть, будет сложно, если вы не сохранили состояние с предыдущей страницы (страниц).