# General Translation Platform: Публикация файлов URL: https://generaltranslation.com/ru/docs/platform/openapi/reference/files/publish-files.mdx --- title: Публикация файлов description: Пометьте переведенные файлы проекта General Translation как опубликованные, чтобы они были готовы к выдаче. Справочник API для публикации файлов. method: POST --- Публикует или снимает с публикации переведенные файлы в CDN General Translation. Задайте `publish` для каждого файла, чтобы управлять их доступностью, и получите отдельный результат для каждого файла и каждой локали. ## Обзор [#overview] ```http POST https://api2.gtx.dev/v2/project/files/publish ``` **Разрешение** `project:files:write` · **Лимит запросов** По умолчанию (200/мин) Позволяет управлять тем, какие переводы отдает CDN. Для проекта должен быть включен CDN. ## Как это работает [#how-it-works] * В проекте должен быть включён CDN. В противном случае запрос завершается ошибкой `400`. * Для каждого файла обновляется состояние публикации исходного файла. Затем каждый завершённый перевод этого файла публикуется или снимается с публикации, а соответствующая запись в кэше CDN создаётся или удаляется. * Если `publish` имеет значение `true`, а данные перевода отсутствуют или слишком велики для публикации, эта локаль помечается как завершившаяся ошибкой. Слишком большой файл, который ранее был опубликован, также снимается с публикации. * Если `publish` имеет значение `false`, переводы снимаются с публикации и удаляются из кэша CDN. * Обработка выполняется отдельно для каждого файла и каждой локали, поэтому ответ содержит одну запись результата для каждого перевода, к которому было применено действие. Если исходный файл не найден, это указывается как результат с ошибкой, а не приводит к сбою всего запроса. ## Запрос [#request] ### Заголовки | Заголовок | Описание | Обязателен | | ----------------- | ---------------------------------------------------------------------- | ---------- | | `x-gt-api-key` | API-ключ проекта или организации. | Да | | `x-gt-project-id` | Идентификатор проекта. Обязателен при использовании ключа организации. | Нет | ### Body **Тип содержимого** `application/json` | Поле | Описание | Тип | Необязательное | По умолчанию | | ----------------- | --------------------------------------------------------------------------- | ---------- | -------------- | ------------ | | [`files`](#files) | Массив файлов для публикации или снятия с публикации; не может быть пустым. | `object[]` | Нет | — | #### `files` [#files] **Тип** `object[]` · **Обязательно** Каждый элемент задаёт файл и требуемый статус публикации: | Поле | Описание | Тип | Необязательно | По умолчанию | | ----------- | ---------------------------------------------------- | --------- | ------------- | ------------------ | | `fileId` | Стабильный идентификатор файла. | `string` | Нет | — | | `versionId` | Идентификатор версии для этого контента. | `string` | Нет | — | | `publish` | `true` — опубликовать, `false` — снять с публикации. | `boolean` | Нет | — | | `branchId` | Ветка, к которой привязан файл. | `string` | Да | Ветка по умолчанию | ## Ответ [#response] **Статус** `200 OK` ```json title="Response" { "results": [ { "fileId": "file_...", "versionId": "ver_...", "locale": "es", "branchId": "br_...", "success": true } ] } ``` ## Ошибки [#errors] | Статус | Причина | | ------ | --------------------------------------------------------- | | `400` | Недопустимое тело запроса или для проекта не включён CDN. | | `401` | API-ключ отсутствует или недействителен. | | `403` | У API-ключа нет разрешения `project:files:write`. | | `429` | Превышен лимит запросов. | ## Пример [#example] ```bash curl -X POST https://api2.gtx.dev/v2/project/files/publish \ -H "x-gt-api-key: gtx-api-..." \ -H "Content-Type: application/json" \ -d '{ "files": [ { "fileId": "file_...", "versionId": "ver_...", "publish": true } ] }' ```