Как создать пост, используя файл, загруженный вручную на веб-сервер или в S3-бакет?

Я включил бакет S3 для загрузок пользователями в соответствии с инструкциями по адресу Set up file and image uploads to S3 - #264 by wal, а также активировал CDN AWS Cloudfront.

На моем форуме Discourse я установил ограничение на размер загружаемых файлов и изображений для пользователей примерно в 8 МБ.

Однако, как администратор сервера, я хотел бы иметь возможность загружать файлы большего размера самостоятельно, чтобы делиться ими с пользователями и встраивать их в сообщения. Мне не хотелось бы каждый раз менять настройки администратора для максимального размера загрузки через интерфейс Discourse. Я предпочел бы просто загрузить файл в свой бакет S3, скопировать и вставить URI файла непосредственно в текст встраивания в формате Markdown сообщения, и чтобы это «просто работало».

Есть ли способ сделать это? Я уже загрузил свой файл, например s3://discourse-bucket/manual-uploads/funny-video.webm, в бакет S3. Однако я не могу понять, как сформировать строку для включения в сообщение, которая позволит корректно встроить его.

Например, другое небольшое видео, которое уже загружено, встроено в сообщение следующим образом: ![small-funny-video|video](upload://AbCdEf132456.mp4). Но, конечно, если я просто скопирую и вставлю строку вроде ![large-funny-video|video](upload://funny-video.webm), это не сработает.

Есть ли какой-то трюк, позволяющий это сделать?

![small-funny-video|video](upload://AbCdEf132456.mp4) — это синтаксис Markdown, где URL можно разместить внутри скобок. Вам не обязательно использовать ссылку, начинающуюся с upload://.

В вашем случае сначала сгенерируйте прямую ссылку на файл в вашем S3-бакете, например, https://discourse-bucket.example.com/manual-uploads/funny-video.webm, а затем в редакторе введите ![large-funny-video|video](https://discourse-bucket.example.com/manual-uploads/funny-video.webm).