Size: a a a

2020 November 23

o

olzhas in Astana JKUG
Eugene Svalukhin
в текущей реализации используется SXSSFWorkbook, но он делает временные файлы, из которых уже собирает единный документ, и уже этот документ потом отдается в http OutputStream. а хочется чтобы сразу в http outputstream отдавалось.
вроде сразу стримит.
источник

o

olzhas in Astana JKUG
я как раз такой вариант и искал что бы сразу стримил.
источник

o

olzhas in Astana JKUG
источник

ES

Eugene Svalukhin in Astana JKUG
с момент отправки до того как у тебя хром начеет отображать индикатор скачивания не обращал сколько времени уходит?
источник

o

olzhas in Astana JKUG
вот от сюда брал.
источник

o

olzhas in Astana JKUG
неа. не обращал.
источник

ES

Eugene Svalukhin in Astana JKUG
допустим если в csv стримингом писать, то сразу появляется индикатор отображающий загрузку документа и получение байтов, в случае же SXSSFWorkbook, индикатор скачивания появляется через некоторое время, в моем случае при большом количестве данных может пройти достаточно много времени
источник

ES

Eugene Svalukhin in Astana JKUG
olzhas
вроде сразу стримит.
еще возможно у тебя из-за малого количества записей всё в памяти собиралось, но я в памяти не собираю, так как при большом количестве запросов и записей, может приехать OOM
источник

o

olzhas in Astana JKUG
ну может,  у меня на смом делене совсем честный стриминг, сперва в память выкачиваю. а потом в поток.
источник

o

olzhas in Astana JKUG
источник

o

olzhas in Astana JKUG
вот тут оригинальый код.
источник

M

MrKnyaz in Astana JKUG
Если используется blocking io то стримить не стоит. Лучше разделить сборку и скачивание если возможно. При скачивании по кускам отдавать
источник

M

MrKnyaz in Astana JKUG
Может даже сервис для этого отдельный написать
источник

M

MrKnyaz in Astana JKUG
Но так еще и клиента надо делать
источник

AZ

Arman Zhakupov in Astana JKUG
Eugene Svalukhin
ах, да, я забыл сказать что мне надо миллион и более записей уметь экспортировать :)
потом же документ не откроется, вроде эсель может открыть чуть больше миллиона строк
источник

TS

Tair Sab in Astana JKUG
Eugene Svalukhin
Ребята, есть вопрос по Apache POI, есть ли какой-то способ стримить сразу генерацию xlsx в http output stream? Я понимаю, что формат xlsx подразумевает, что надо чтобы появился целый файл (во временной директории), так как он гзипается, ну и там xmlки внутри еще лежат, ну а вдруг кто-то делал такое :)
по идее необязательно для зипа временный файл ))
источник

TS

Tair Sab in Astana JKUG
источник

TS

Tair Sab in Astana JKUG
я правда не знаю, умеет ли excel работать с такими архивами, но думаю можно попробовать
источник

ES

Eugene Svalukhin in Astana JKUG
чисто теоретически получается, да можно похакать и устроить что-то наподобие стримингового зипа, который в себе определенный набор xml содержит
источник

TS

Tair Sab in Astana JKUG
НО нужно помнить, что “отдавать сразу клиенту” — не всегда безопасное решение с точки зрения ресурсов, так как базы данных обычно не любят долго открытые транзакции или курсоры
источник