# generaltranslation: General Translation Core SDK: downloadFileBatch
URL: https://generaltranslation.com/es/docs/core/class/methods/translation/download-file-batch.mdx
---
title: downloadFileBatch
description: Referencia de la API del método downloadFileBatch para descargar varios archivos en una sola solicitud
---
## Resumen
El método `downloadFileBatch` descarga varios archivos fuente o de traducción en una sola solicitud por lote.
```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' }
]);
```
**Eficiencia en lotes:**
Este método está optimizado para descargar varios archivos en una sola llamada a la API, lo que reduce la sobrecarga de red y mejora el rendimiento frente a varias llamadas individuales a `downloadFile`.
## Referencia
### Parámetros
| Nombre | Tipo | Descripción |
| ---------- | -------------------------- | ---------------------------------------------------- |
| `requests` | `DownloadFileBatchRequest` | Array de objetos de solicitud de archivo |
| `options?` | `DownloadFileBatchOptions` | Configuración opcional para la solicitud de descarga |
#### DownloadFileBatchRequest
```typescript
type DownloadFileBatchRequest = {
fileId: string;
branchId?: string;
locale?: string;
versionId?: string;
useLatestAvailableVersion?: boolean;
}[];
```
| Name | Type | Description |
| ---------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `fileId` | `string` | Identificador único del archivo que se descargará |
| `branchId?` | `string` | ID de la rama desde la que se descargará. Si no se proporciona, se usará la rama predeterminada |
| `locale?` | `string` | Configuración regional de destino para la traducción. Si no se proporciona, se descargará el archivo de origen |
| `versionId?` | `string` | ID de la versión que se descargará. Si no se proporciona, se usará la versión más reciente |
| `useLatestAvailableVersion?` | `boolean` | Si es `true` y no se encuentra el `versionId` especificado, se usará la última versión disponible en lugar de generar un error. El valor predeterminado es `false` |
#### DownloadFileBatchOptions
| Nombre | Tipo | Descripción |
| ---------- | -------- | ----------------------------------------------- |
| `timeout?` | `number` | Tiempo de espera de la solicitud en milisegundos |
### Devuelve
`Promise` - Incluye los archivos descargados y sus metadatos.
```typescript
type DownloadFileBatchResult = {
files: File[];
count: number;
}
```
| Propiedad | Tipo | Descripción |
| --------- | -------- | -------------------------------------------- |
| `files` | `File[]` | array de objetos de archivo descargados |
| `count` | `number` | Número de archivos descargados correctamente |
#### Estructura de archivos
```typescript
type File = {
fileId: string;
branchId?: string;
locale?: string;
versionId?: string;
fileName: string;
data: string;
}
```
| Propiedad | Tipo | Descripción |
| ----------- | -------- | --------------------------------------------------------- |
| `fileId` | `string` | ID del archivo |
| `branchId` | `string` | ID de la rama |
| `locale` | `string` | Configuración regional del archivo (si es una traducción) |
| `versionId` | `string` | ID de la versión |
| `fileName` | `string` | Nombre original del archivo |
| `data` | `string` | Contenido del archivo como cadena UTF-8 |
***
## Ejemplos
```typescript title="index.ts" copy
// (1) Crear una instancia de GT
const targetLocales = ['es', 'fr', 'de'];
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key',
});
// (2) Cargar el archivo
const fileUpload = {
content: fileContents,
fileName: filePath,
fileFormat: 'JSON',
locale: 'en',
};
const files = [ { source: fileUpload } ];
const { uploadedFiles } = await gt.uploadSourceFiles(
files,
{ sourceLocale: 'en' }
);
// (3) Encolar el trabajo de traducción del archivo
const enqueueResult = await gt.enqueueFiles(
uploadedFiles,
{
sourceLocale: 'en',
targetLocales: targetLocales,
}
);
// (4) Esperar a que se completen todas las traducciones
const { fileId, versionId, branchId } = uploadedFiles[0];
const result = await gt.awaitJobs(enqueueResult);
if (!result.complete) {
console.error('Algunos trabajos no finalizaron a tiempo');
}
// (5) Descargar todas las traducciones en lote
const downloadResult = await gt.downloadFileBatch(
targetLocales.map((locale) => ({
fileId,
branchId,
locale
}))
);
downloadResult.files.forEach(file => {
console.log(`Descargado ${file.locale}: ${file.fileName}`);
});
```
***
## Notas
* Los archivos se devuelven como cadenas en UTF-8
* Usa [`queryFileData`](/docs/core/class/methods/translation/query-file-data) para verificar primero que los archivos estén listos para descargarse
* Los archivos se devuelven en el mismo orden que los elementos solicitados, cuando es posible
* Que falle la descarga de un archivo dentro del lote no hace que falle el lote completo
## Siguientes pasos
* Consulta [`downloadFile`](/docs/core/class/methods/translation/download-file) para descargar un solo archivo
* Consulta [`queryFileData`](/docs/core/class/methods/translation/query-file-data) para verificar que los archivos estén listos para su descarga
* Consulta [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) para iniciar trabajos de traducción