Записи на сайте размещаются после отправки заполненной формы, но контент (тело статьи, изображения, вложения) загружаются на сервер асинхронно, через вызов метода api, который загружает файл на сервер и возвращает публичную ссылку на него. После чего ссылки улетают вместе с формой на добавление новой статьи. Хочу в дальнейшем прикрутить файловый менеджер, в котором можно посмотреть какой файл, куда был загружен. Сейчас для каждого загруженного файла есть запись в бд.
Наиболее очевидный способ - найти все ссылки на файлы в теле запроса и занести их в бд по типу многие ко многим.
Еще одни способ - перед загрузкой любого файла генерировать пустую статью (или uid будущей статьи) и посылать их вместе с загруженным файлом и сразу заносить данные в бд.
Как лучше поступить? Есть ли другие варианты?
Первый вариант отдает лаптями и портянками, а смысл второго варианта от меня ускользает.
Я не вижу, какая проблема передать на сервер все "публичные ссылки" вместе со статьей, и записывать нормальным порядком после статьи.
На фронте использую editorJs, в частности плагин, который позволяет добавлять изображения посылает переданные файлы на сервер и после хранит ссылку на них в теле блока. Если загружать все изображения вместе с формой статьи, то все равно придется производить манипуляции с блоками контента статьи. Ну и придется написать свой плагин для редактора.
Upd. Неправильно понял ответ. Так ссылки и так улетают вместе со статьей, а разницы добавить их отдельным полем или спарсить регуляркой из тела секции контента - я особой не вижу. Просто сам способ мне кажется костыльным.
Я читаю "возвращает публичную ссылку" и не понимаю - какая проблема запомнить эту возвращенную ссылку и передать вместе с постом. Что в этом костыльного?
Вот как раз создавать. пустую статью непонятно зачем - вот это костыль.
Придется допиливать редактор, если он не поддерживает прикрепление файлов, либо это делает не по вашей модели данных.
спарсить регуляркой из тела секции контента - я особой не вижу
Если контент не предполагает отображение ссылок в тексте статьи, то не надо пытаться в текст вставить какие-то дополнительные метаданные статьи, в частности, список файлов. Лучше использовать отдельные поля.