Медиафайлы
API для загрузки, скачивания и удаления файлов. Файлы хранятся в S3-совместимом хранилище (SeaweedFS).
Загрузка файла
POST /media/upload?channelId={channelId}
Требуется членство в канале и право ATTACH_FILES.
Content-Type: multipart/form-data
Максимальный размер файла: 50 МБ (настраивается через MAX_FILE_SIZE_MB).
Ответ (201):
{ "id": "media-uuid", "channelId": "channel-uuid", "fileName": "photo.png", "contentType": "image/png", "sizeBytes": 1048576, "uploadedAt": "2025-01-15T10:30:00Z" }
Ошибки:
Скачивание файла
GET /media/{mediaId}
Аутентификация не требуется.
Ответ (200): бинарные данные файла с заголовком Content-Disposition: attachment; filename="...".
Ошибки: NOT_FOUND — файл не найден.
Удаление файла
DELETE /media/{mediaId}
Удалить может загрузивший пользователь или пользователь с правом MANAGE_MESSAGES.
Ответ (200): SuccessResponse.
Ошибки: NOT_FOUND, FORBIDDEN.