# General Translation Platform: downloadFileBatch URL: https://generaltranslation.com/ru/docs/platform/core/reference/gt-class-methods/translation/download-file-batch.mdx --- title: downloadFileBatch description: Скачивание нескольких переведённых файлов одним запросом. Справочник API для downloadFileBatch. --- Позволяет скачать несколько исходных файлов или файлов перевода в одном пакетном запросе с General Translation. Используйте этот метод вместо множества отдельных вызовов [`downloadFile`](/docs/platform/core/reference/gt-class-methods/translation/download-file), чтобы уменьшить сетевые издержки. ## Обзор [#overview] Вызовите `downloadFileBatch`, передав массив запросов к файлам. Каждый запрос может относиться либо к переводу (с `locale`), либо к исходному файлу (без неё). ```typescript const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' }); const result = await gt.downloadFileBatch([ { fileId: 'file-123', branchId: 'branch-456', locale: 'es' }, { fileId: 'file-123', branchId: 'branch-456', locale: 'fr' }, { fileId: 'file-123', branchId: 'branch-456', locale: 'de' }, ]); ``` Сигнатура: ```typescript downloadFileBatch( requests: DownloadFileBatchRequest, options?: DownloadFileBatchOptions ): Promise ``` *Примечание: `downloadFileBatch` требует, чтобы в экземпляре GT были указаны `apiKey` (или `devApiKey`) и `projectId`. Он загружает несколько файлов за один вызов API, что эффективнее, чем многократные вызовы `downloadFile`.* ## Как это работает [#how-it-works] * **Порядок.** По возможности файлы возвращаются в том же порядке, в котором были запрошены. * **Частичный успех.** Сбой при скачивании отдельного файла в рамках пакета не приводит к сбою всего пакета. * **Готовность.** Используйте [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data), чтобы проверить, готовы ли файлы к скачиванию. ## Параметры [#parameters] | Параметр | Описание | Тип | Необязательный | По умолчанию | | ----------------------- | ----------------------------------- | -------------------------- | -------------- | ------------ | | [`requests`](#requests) | Массив объектов запроса файлов. | `DownloadFileBatchRequest` | Нет | — | | [`options`](#options) | Конфигурация запроса на скачивание. | `DownloadFileBatchOptions` | Да | — | ### `requests` [#requests] **Тип** `DownloadFileBatchRequest` · **Обязательно** Массив запросов на файлы: ```typescript type DownloadFileBatchRequest = { fileId: string; branchId?: string; locale?: string; versionId?: string; useLatestAvailableVersion?: boolean; }[]; ``` | Field | Description | Type | Optional | Default | | --------------------------- | ----------------------------------------------------------------------------------------------------------- | --------- | -------- | ------------------ | | `fileId` | Уникальный идентификатор файла для скачивания. | `string` | Нет | — | | `branchId` | Ветка, из которой выполняется скачивание. | `string` | Да | ветка по умолчанию | | `locale` | Целевая локаль перевода. Не указывайте, чтобы скачать исходный файл. | `string` | Да | — | | `versionId` | ID версии для скачивания. | `string` | Да | последняя версия | | `useLatestAvailableVersion` | Если `true` и указанный `versionId` не найден, вместо ошибки будет использована последняя доступная версия. | `boolean` | Да | `false` | ### `options` [#options] **Тип** `DownloadFileBatchOptions` · **Необязательный** | Поле | Описание | Тип | Необязательно | | --------- | --------------------------------- | -------- | ------------- | | `timeout` | Тайм-аут запроса в миллисекундах. | `number` | Да | ## Возвращает [#returns] **Тип** `Promise` Возвращает `DownloadFileBatchResult`, содержащий загруженные файлы и их количество: ```typescript type DownloadFileBatchResult = { files: DownloadedFile[]; count: number; }; type DownloadedFile = { id: string; branchId: string; fileId: string; versionId: string; locale?: string; // присутствует, когда файл является переводом fileName?: string; // присутствует для исходных файлов (когда локаль отсутствует) data: string; // содержимое файла в виде строки UTF-8 metadata: JsonObject; fileFormat: FileFormat; }; ``` | Свойство | Описание | Тип | | -------------------- | --------------------------------------------------------- | ------------------- | | `files` | Массив объектов загруженных файлов. | `DownloadedFile[]` | | `count` | Количество успешно загруженных файлов. | `number` | | `files[].id` | Уникальный идентификатор записи загруженного файла. | `string` | | `files[].branchId` | ID ветки. | `string` | | `files[].fileId` | ID файла. | `string` | | `files[].versionId` | ID версии. | `string` | | `files[].locale` | Локаль файла; присутствует, если файл является переводом. | `string` (optional) | | `files[].fileName` | Исходное имя файла; присутствует для исходных файлов. | `string` (optional) | | `files[].data` | Содержимое файла в виде строки в кодировке UTF-8. | `string` | | `files[].metadata` | Метаданные, специфичные для формата файла. | `JsonObject` | | `files[].fileFormat` | Формат файла (`JSON`, `MDX` и т. д.). | `FileFormat` | ## Примеры [#examples] ```typescript title="index.ts" // (1) Создать экземпляр GT const targetLocales = ['es', 'fr', 'de']; const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key', }); // (2) Загрузить файл const fileUpload = { content: fileContents, fileName: filePath, fileFormat: 'JSON', locale: 'en', }; const files = [{ source: fileUpload }]; const { uploadedFiles } = await gt.uploadSourceFiles(files, { sourceLocale: 'en' }); // (3) Поставить задачу перевода файла в очередь const enqueueResult = await gt.enqueueFiles(uploadedFiles, { sourceLocale: 'en', targetLocales: targetLocales, }); // (4) Дождаться завершения всех переводов const { fileId, versionId, branchId } = uploadedFiles[0]; const result = await gt.awaitJobs(enqueueResult); if (!result.complete) { console.error('Some jobs did not finish in time'); } // (5) Скачать все переводы пакетом const downloadResult = await gt.downloadFileBatch( targetLocales.map((locale) => ({ fileId, branchId, locale, })) ); downloadResult.files.forEach((file) => { console.log(`Downloaded ${file.locale}: ${file.fileName}`); }); ``` ## Примечания [#notes] * Файлы возвращаются в виде строк в кодировке UTF-8. * Сначала используйте [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data), чтобы убедиться, что файлы готовы к загрузке. * По возможности файлы возвращаются в том же порядке, что и запрошенные элементы. * Ошибка при скачивании отдельных файлов в рамках пакета не приводит к сбою всего пакета.