170 похожих чатов

А вообще крч задача такая, есть шаблоны в svg, по

запросу от юзера нужно сгенерировать например 100 таких шаблонов, в каждом немного поменять текст, конвертировать в jpg + pdf, засунуть все в зип архив, и дать его скачать юзеру

как и чем лучше всего это делать? сейчас фактически решение в лоб на ноде, но оно медленное и жрет памяти уж очень много

24 ответов

29 просмотров

Вы 100 картинок в память грузите, конечно будет жрать )) Байндинги ещё есть https://github.com/walling/node-rsvg

вариант записывать стримами сразу на диск?

самый правильный вариант, через потоки делать

Streams

тогда не понял в чем отличие этого от Streams

я как бы "плюсанул" к этому варианту)

ну лучше создавать папку, открывать write стрим и писать уже на диск, потом архивировать

та уже понял, а то были даже случаи что надо было сразу 400 сгенерировать и нода падала от out of memory

а архивировать я так понимаю лучше вызовом архиватора а не нодой самой?

забей я дождь смотрю

(( В соседнем чате по телеграф ботам обсуждали микросервисы когда там в США протесты были

😂

Через зип либу тоже, там считывается и пишется в буфер, к примеру

либа jszip? просто оно разве не будет весь архив в памяти держать?

Вроде бы есть имплементация через стримы, но так-то будет

может тогда чтоб не угадывать проще просто вызвать линуксовый архиватор?

Не перемудривай пока работает, ты попробуй нормально, потом будешь страдать если нужно

лучше настроить nginx под такие нужды

вопрос был не в том как отдавать файл,а как эффективно создать архив

ну так создаешь архив из стрима пакетом zip на nginx

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта