Size: a a a

NestJS — русскоязычное сообщество

2021 July 04

ОМ

Олег Мельник... in NestJS — русскоязычное сообщество
Окей, а как сделать лучше?
источник

АД

Александр Духновский... in NestJS — русскоязычное сообщество
Передавать картинку сразу в конечную точку
источник

ОМ

Олег Мельник... in NestJS — русскоязычное сообщество
я об этом думал, просто вот хотел узнать ещё не ломает ли это логику использования микросервисной архитектуры где запросы все идут в один ворота, так сказать, а там уже каждый на свое место
источник

ОЛ

Олег Линьков... in NestJS — русскоязычное сообщество
Генерировать микросервисом ссылку на загрузку, gateway ее кидает фронту, обработка тоже на стороне микросервиса
источник

ОЛ

Олег Линьков... in NestJS — русскоязычное сообщество
Бинарник гонять по туннелю такое себе
источник

D

Dmitriy in NestJS — русскоязычное сообщество
А откуда ты взял логику про одни ворота? У s3 есть presigned URL. Получай его - и сразу лей куда надо
источник

ОЛ

Олег Линьков... in NestJS — русскоязычное сообщество
У меня на работе получение чеков по туннелю гоняется, долго не могли понять почему не загруженный сервис просел. А туннель на 100 мегабит загружен 24/7, данные летят между ними
источник

ЕД

Евгений Данилов... in NestJS — русскоязычное сообщество
Ну это зависит от технологий. Нормальная практика это получать файл, отправлять его на сервис (например если это s3) и хранить где-то ключ к нему.  Затем отдать это все на попечительство Nginx для кеширования и проксирования к методу, который получает из S3 файл нужный (это ещё нужно и для защиты, чтобы ссылка на файл не была постоянной, ведь там плата за трафик).
источник

ОЛ

Олег Линьков... in NestJS — русскоязычное сообщество
загрузку тоже на s3 логичнее перевести)
источник

ОМ

Олег Мельник... in NestJS — русскоязычное сообщество
Ну, в инете вычитал, мб не так понял.
Мне вообще надо эти файлы на Dropbox грузить
источник

ЕД

Евгений Данилов... in NestJS — русскоязычное сообщество
Так тут речь и идёт об загрузке на S3. Но Nest будет все-равно посредником. Иначе придётся ключи светить
источник

АД

Александр Духновский... in NestJS — русскоязычное сообщество
Роль "одних ворот' должен выполнять прокси. Nginx какой-нибудь. Но никак не другой мс
источник

ОЛ

Олег Линьков... in NestJS — русскоязычное сообщество
Можно грузить во временную папку и подписаться на уведомления. Обработка будет отдельным процессом, производительность при этом не пострадает. там вариантов масса
источник

D

Dmitriy in NestJS — русскоязычное сообщество
источник

ЕД

Евгений Данилов... in NestJS — русскоязычное сообщество
А можно просто асинхронно загрузить одним методом, на который и передают файл по REST.  Либо синхронно чтобы дождаться ссылки и вернуть её. Тут скорее вопрос как получать эти файлы, у человека.
источник

АД

Александр Духновский... in NestJS — русскоязычное сообщество
Это не зависит от технологий. Это элементарная комбинаторная задачка: чем меньше сегментов, тем короче путь. Nginx или что-то типа него и так будет в мс архитектуре просто ради организации единой точки доступа к апи.
источник

ЕД

Евгений Данилов... in NestJS — русскоязычное сообщество
У него есть хорошие возможности для кеширования файлов полученных из S3. Таким образом и экономия на трафике, и в облако ходить не надо (нагрузки нет на эндпоинты).
Просто в некоторых случаях (из-за приватности и прочего) - нельзя никак публично эти ссылки светить, приходится получать содержимое и выдавать его (как TMP файл, с ссылкой, которая скоро станет недоступной и надо будет делать новую). Вот и получается что надо и грузить через посредника и получать.
источник

ОМ

Олег Мельник... in NestJS — русскоязычное сообщество
Доки я читал и сам файл загружать я могу туда
Просто вопрос был в передаче.
В целом если не плохо будет грузить сразу на дропбокс с фронта например, то так и сделаю
источник

D

Dmitriy in NestJS — русскоязычное сообщество
Да, по возможности лучше так и делать
источник

ОМ

Олег Мельник... in NestJS — русскоязычное сообщество
Окей, буду переделывать значит, спасибо всем
источник