API / Справочник методов / Файлы сервера

Файлы сервера

Список, чтение, запись, удаление и переименование файлов.

GET/projects/:id/services/:serviceId/files

Список файлов

Право: servers:files
Параметры
idобязательныйpath · stringНомер проекта (из GET /projects) или тикета
serviceIdобязательныйpath · stringНомер услуги (из GET /projects/:id/services)
dirquery · 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"
    }
  ]
}
Ошибки метода
404file_not_foundНет такого файла или папки
400path_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"
}
Ошибки метода
404file_not_foundНет такого файла или папки
413file_too_largeБольше 1 МБ или не текст
400path_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 Пустой ответ
Ошибки метода
413file_too_largeБольше 1 МБ или не текст
400path_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 Пустой ответ

Общие ошибки

Любой метод может ответить так. Подробнее об ошибках

400bad_requestНеверное тело или параметры
401token_invalidТокен неверный, отозван или просрочен
403token_scope_missingУ токена нет нужного права
403token_project_forbiddenПроект или услуга вне ограничений токена
404not_foundНет такого проекта, услуги или объекта
429token_rate_limitedСлишком много запросов, см. Retry-After
503upstream_unavailableПанель или нода не ответили — повторите позже