API / Справочник методов / Файлы сервера
Файлы сервера
Список, чтение, запись, удаление и переименование файлов.
Адрес:
https://sourhost.net/api/v1·Авторизация: Authorization: Bearer sh_live_…GET
/projects/:id/services/:serviceId/files— Список файловGET/projects/:id/services/:serviceId/files/content— Прочитать файлPUT/projects/:id/services/:serviceId/files/content— Записать файлPOST/projects/:id/services/:serviceId/files/delete— Удалить файлыPOST/projects/:id/services/:serviceId/files/rename— Переименовать файлPOST/projects/:id/services/:serviceId/files/folder— Создать папкуGET
/projects/:id/services/:serviceId/filesСписок файлов
Право:
servers:filesПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
dir | query · string | Папка, по умолчанию / |
Пример запроса
curl "https://sourhost.net/api/v1/projects/12/services/34/files?dir=%2Fgame%2Fcsgo%2Fcfg" \
-H "Authorization: Bearer $SOURHOST_TOKEN"Ответ
HTTP
HTTP/2 200 OK
{
"dir": "/game/csgo/cfg",
"items": [
{
"name": "server.cfg",
"path": "/game/csgo/cfg/server.cfg",
"directory": false,
"size": 1834,
"mimetype": "text/plain",
"modifiedAt": "2026-11-10T21:14:00Z"
}
]
}Ошибки метода
| 404 | file_not_found | Нет такого файла или папки |
| 400 | path_invalid | Неверный путь |
GET
/projects/:id/services/:serviceId/files/contentПрочитать файл
Право:
servers:filesПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
pathобязательный | query · string | Путь к текстовому файлу до 1 МБ |
Пример запроса
curl "https://sourhost.net/api/v1/projects/12/services/34/files/content?path=%2Fgame%2Fcsgo%2Fcfg%2Fserver.cfg" \
-H "Authorization: Bearer $SOURHOST_TOKEN"Ответ
HTTP
HTTP/2 200 OK
{
"path": "/game/csgo/cfg/server.cfg",
"size": 1834,
"content": "hostname \"Retake #1\"\nsv_cheats 0\n"
}Ошибки метода
| 404 | file_not_found | Нет такого файла или папки |
| 413 | file_too_large | Больше 1 МБ или не текст |
| 400 | path_invalid | Неверный путь |
PUT
/projects/:id/services/:serviceId/files/contentЗаписать файл
Заменяет файл целиком (создаёт, если его нет).
Право:
servers:filesПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
pathобязательный | body · string | Путь к файлу |
contentобязательный | body · string | Новое содержимое, текст до 1 МБ |
Пример запроса
curl -X PUT "https://sourhost.net/api/v1/projects/12/services/34/files/content" \
-H "Authorization: Bearer $SOURHOST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"path":"/game/csgo/cfg/server.cfg","content":"hostname \"Retake #1\"\nsv_cheats 0\n"}'Ответ
204 Пустой ответ
Ошибки метода
| 413 | file_too_large | Больше 1 МБ или не текст |
| 400 | path_invalid | Неверный путь |
POST
/projects/:id/services/:serviceId/files/deleteУдалить файлы
Право:
servers:filesПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
rootобязательный | body · string | Папка, например /game/csgo/cfg |
filesобязательный | body · string[] | Имена файлов и папок в root |
Пример запроса
curl -X POST "https://sourhost.net/api/v1/projects/12/services/34/files/delete" \
-H "Authorization: Bearer $SOURHOST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"root":"/game/csgo/maps","files":["old_map.bsp"]}'Ответ
204 Пустой ответ
POST
/projects/:id/services/:serviceId/files/renameПереименовать файл
Право:
servers:filesПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
Пример запроса
curl -X POST "https://sourhost.net/api/v1/projects/12/services/34/files/rename" \
-H "Authorization: Bearer $SOURHOST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"root":"/game/csgo/cfg","from":"server.cfg","to":"server.cfg.bak"}'Ответ
204 Пустой ответ
POST
/projects/:id/services/:serviceId/files/folderСоздать папку
Право:
servers:filesПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
Пример запроса
curl -X POST "https://sourhost.net/api/v1/projects/12/services/34/files/folder" \
-H "Authorization: Bearer $SOURHOST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"root":"/game/csgo/cfg","name":"tournament"}'Ответ
204 Пустой ответ
Общие ошибки
Любой метод может ответить так. Подробнее об ошибках
| 400 | bad_request | Неверное тело или параметры |
| 401 | token_invalid | Токен неверный, отозван или просрочен |
| 403 | token_scope_missing | У токена нет нужного права |
| 403 | token_project_forbidden | Проект или услуга вне ограничений токена |
| 404 | not_found | Нет такого проекта, услуги или объекта |
| 429 | token_rate_limited | Слишком много запросов, см. Retry-After |
| 503 | upstream_unavailable | Панель или нода не ответили — повторите позже |