Я подумал использовать ресурс Upload, указав type=“composer”. Но я не вижу способа связать Upload с Post. Или, возможно, это не тот ресурс для загрузки вложений?
В API постов напрямую нет поля «attachments». Чтобы прикрепить загруженный файл к посту, необходимо выполнить следующие шаги:
Загрузить файл (получить короткую ссылку).
Сначала загрузите вложение через эндпоинт /uploads.json:
Эндпоинт: POST /uploads.json
В ответе будет содержаться short_url, например upload://abcDEF123.pdf.
Отредактируйте или создайте пост, включив эту короткую ссылку, чтобы Discourse распознал её и связал загрузку с постом. Чтобы назначить загруженное вложение посту, нужно включить короткую ссылку на загрузку в необработанный контент поста, используя Markdown. Для вложений можно использовать следующий формат:
[filename.pdf|attachment](upload://abcDEF123.pdf)
Или для изображений:

Это можно сделать при создании поста (используя POST /posts.json) или при редактировании существующего поста (используя PUT /posts/{id}.json), поместив markdown-ссылку в поле raw.
Для справки, на эту тему также есть несколько существующих тем: