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Панель або нода не відповіли — повторіть пізніше