# General Translation Platform: 发布文件 URL: https://generaltranslation.com/zh/docs/platform/openapi/reference/files/publish-files.mdx --- title: 发布文件 description: 将 General Translation 项目的翻译后的文件标记为已发布,使其可供分发。发布文件的 API 参考。 method: POST --- 将翻译后的文件发布到 General Translation CDN,或取消发布。为每个文件设置 `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 缓存中移除。 * 处理是按文件和区域设置分别进行的,因此响应中会为每个处理过的翻译包含一条结果 entry。未找到的源文件会被报告为失败结果,而不是导致整个请求失败。 ## 请求 [#request] ### 标头 | 标头 | 描述 | 必填 | | ----------------- | ---------------------- | -- | | `x-gt-api-key` | 项目或组织 API 密钥。 | 是 | | `x-gt-project-id` | 项目 ID。使用组织 API 密钥时为必填。 | 否 | ### 请求体 **内容类型** `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 密钥,或 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 } ] }' ```