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

Всем привет, допустим на фронтенде есть форма, половина данных json,

а половина файлы, фотки и тд. Я хочу отсылать на фронт ссылку на загрузку файлов, чтобы он сам их загружал на s3. Вопрос как это правильно реализовать? Грузить сразу как только юзер загрузит с компа, или при сабмите кнопки всё это делать?

13 ответов

40 просмотров

Не тот чат

Liubomyr- Автор вопроса

Ещё думаю сперва слать json, а ответом получать id сессии, чтобы удоствориться что данные провалидированные, и уже после этого грузить фотки. В первом случае хз как удалять их с s3, если юзер уйдет с сайта

Liubomyr- Автор вопроса
Daniel Podolsky
Не тот чат

ну это больше про реализацию на бекенде, мне нужно решить как сделать это на сервисе

а не проще ли загружать на S3 и отдавать бэку ID обьектов в запросе? Да, есть риски, но оправдано ли для вас сейчас тратить на них время?

Liubomyr- Автор вопроса
Roman Sharkov
а не проще ли загружать на S3 и отдавать бэку ID о...

Ну вот это хороший вариант, но одна проблема, что если юзер не отправит форму бекенд не узнает об этих id. И следовательно не сможет их в будущем удалить

Liubomyr- Автор вопроса
Liubomyr
Ну вот это хороший вариант, но одна проблема, что ...

Хотя думаю, что можно реализовать что-то типа таблицы, и слать туда при каждой загрузке, в которой будут всё эти ключи, и при каждой новой отправке формы находить ключи и удалять. А те что в течении n времени не удалились удалять автоматично

Roman Sharkov
а не проще ли загружать на S3 и отдавать бэку ID о...

Платит за s3 кто? Ты масштаб рисков прикинул?

Должен быть отдельный эндпоинт загрузки картинок. Goшный эндпоинт в ответ на загрузку картинки должен отдавать id из БД (из таблицы, в которой хранятся ссылки на s3-объекты). Фронт этот id должен отправлять вместе с остальными полями формы при её сабмите. Т.е. загрузка картинки - отдельный процесс. Пользователь в форме сначала грузит картинку, после чего у него становится доступной кнопка сабмита формы (если картинка в форме обязательна). P.s. если не хочется платить за s3, можно на сервере развернуть Minio

Liubomyr- Автор вопроса
Liubomyr
Хорошо, звучит более продумано, спасибо

У меня по такой схеме куча проектов работает

Liubomyr- Автор вопроса
Liubomyr
а в таблицах сохраняется key и url?

Нет, url не храню, смысла нет. Потому что домен картинок может и поменяться со временем. Если мне нужно отдавать url, я его в коде формирую. Там поля примерно такие: id (uuid) s3key (text) user_id (uuid) created_at (datetime with timezone) Остальное по желанию (например, размер изображения и т.п.)

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
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
Карта сайта