# ファイルのアップロード (大きなファイル)

署名付きアップロード URL を作成すると、HTTP `PUT` を使用して大きなファイルをストレージに直接アップロードできるようになります。

マルチパートのアップロードの効率が低い場合は、大規模な 3D モデルまたは画像にこのフローを使用します。小さいファイルの場合は、標準のファイル アップロード エンドポイントも利用できます。

## エンドポイント

```http
POST /v3/files/presign
```

## アップロードの流れ

1. ファイル `format` を使用して `POST /v3/files/presign` を呼び出します。
2. HTTP `PUT` を使用して、ファイル バイトを `presigned_url` にアップロードします。
3. 返された `file_token` は、モデルのインポート、リトポロジ、モデルの変換、イメージから 3D モデルなど、後の API 呼び出しで `input` として使用します。

## リクエストボディ

| フィールド | 種類 | 必須 | 説明 |
| --- | --- | --- | --- |
| `format` | 文字列 | 必須 | 先頭にドットのないファイル拡張子 (`glb`、`fbx`、`png`、`webp` など)。 |

## 応答フィールド

| フィールド | 種類 | 説明 |
| --- | --- | --- |
| `presigned_url` | 文字列 | 一時的 HTTP `PUT` URL、30 分間有効。 |
| `file_token` | 文字列 | アップロード完了後に使用するファイル参照トークン。 |
| `expires_in` | 整数 | URL 有効期間 (秒)。 `1800`に固定されています。 |

## curl の例

```bash
curl -s -X POST https://openapi.tripo3d.ai/v3/files/presign \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"format":"glb"}'

curl -X PUT \
  -H "Content-Type: application/octet-stream" \
  -T model.glb \
  "<presigned_url>"
```

Tripo `Authorization` ヘッダーをストレージ `PUT` リクエストに追加しないでください。
