# generaltranslation: General Translation Core SDK: downloadFileBatch
URL: https://generaltranslation.com/ja/docs/core/class/methods/translation/download-file-batch.mdx
---
title: downloadFileBatch
description: 1 回のリクエストで複数のファイルをダウンロードするための downloadFileBatch メソッドの API リファレンス
---
## 概要
`downloadFileBatch` メソッドは、単一のバッチリクエストで複数のソースファイルまたは翻訳ファイルをダウンロードします。
```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' }
]);
```
**バッチ処理の効率性:**
このメソッドは、1 回の API 呼び出しで複数のファイルをダウンロードできるよう最適化されており、`downloadFile` を個別に複数回呼び出す場合と比べて、ネットワークのオーバーヘッドを削減し、パフォーマンスを向上させます。
## リファレンス
### パラメータ
| 名前 | 型 | 説明 |
| ---------- | -------------------------- | ------------------- |
| `requests` | `DownloadFileBatchRequest` | ファイルリクエストオブジェクトの配列 |
| `options?` | `DownloadFileBatchOptions` | ダウンロードリクエストのオプション設定 |
#### DownloadFileBatchRequest
```typescript
type DownloadFileBatchRequest = {
fileId: string;
branchId?: string;
locale?: string;
versionId?: string;
useLatestAvailableVersion?: boolean;
}[];
```
| Name | Type | Description |
| ---------------------------- | --------- | --------------------------------------------------------------------------------------- |
| `fileId` | `string` | ダウンロードするファイルの一意の識別子 |
| `branchId?` | `string` | ダウンロード元のブランチ ID。指定しない場合は、デフォルトのブランチが使用されます |
| `locale?` | `string` | 翻訳先のロケール。指定しない場合は、ソースファイルがダウンロードされます |
| `versionId?` | `string` | ダウンロードするバージョン ID。指定しない場合は、最新バージョンが使用されます |
| `useLatestAvailableVersion?` | `boolean` | `true` の場合、指定した `versionId` が見つからなければ、失敗する代わりに利用可能な最新バージョンにフォールバックします。デフォルトは `false` です |
#### DownloadFileBatchOptions
| 名前 | 型 | 説明 |
| ---------- | -------- | --------------------- |
| `timeout?` | `number` | リクエストのタイムアウト時間 (ミリ秒) |
### 戻り値
`Promise` - ダウンロードしたファイルとメタデータが含まれます。
```typescript
type DownloadFileBatchResult = {
files: File[];
count: number;
}
```
| プロパティ | 型 | 説明 |
| ------- | -------- | ---------------------- |
| `files` | `File[]` | ダウンロードされたファイルオブジェクトの配列 |
| `count` | `number` | 正常にダウンロードされたファイルの数 |
#### ファイル構成
```typescript
type File = {
fileId: string;
branchId?: string;
locale?: string;
versionId?: string;
fileName: string;
data: string;
}
```
| プロパティ | 型 | 説明 |
| ----------- | -------- | ------------------ |
| `fileId` | `string` | ファイル ID |
| `branchId` | `string` | ブランチ ID |
| `locale` | `string` | ファイルのロケール (翻訳時) |
| `versionId` | `string` | バージョン ID |
| `fileName` | `string` | 元のファイル名 |
| `data` | `string` | UTF-8 文字列形式のファイル内容 |
***
## 例
```typescript title="index.ts" copy
// (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('一部のジョブが時間内に完了しませんでした');
}
// (5) すべての翻訳をまとめてダウンロードする
const downloadResult = await gt.downloadFileBatch(
targetLocales.map((locale) => ({
fileId,
branchId,
locale
}))
);
downloadResult.files.forEach(file => {
console.log(`ダウンロード完了 ${file.locale}: ${file.fileName}`);
});
```
***
## 注意事項
* ファイルは UTF-8 文字列として返されます
* 事前に [`queryFileData`](/docs/core/class/methods/translation/query-file-data) を使用して、ファイルがダウンロード可能な状態か確認してください
* 可能な場合、ファイルはリクエストした項目と同じ順序で返されます
* バッチ内の個々のファイルのダウンロードに失敗しても、バッチ全体が失敗することはありません
## 次のステップ
* 単一ファイルのダウンロードについては [`downloadFile`](/docs/core/class/methods/translation/download-file) を参照してください
* ファイルのダウンロード準備ができているか確認するには [`queryFileData`](/docs/core/class/methods/translation/query-file-data) を参照してください
* 翻訳ジョブを開始するには [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) を参照してください