> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# ファイルを AceDataCloud プラットフォーム CDN にアップロード

> Platform API guide - Ace Data Cloud

ローカルファイルを AceDataCloud プラットフォーム CDN にアップロードし、公開アクセス可能な URL（`https://cdn.acedata.cloud/xxxxxx.png` 形式）を取得します。取得後すぐに、他の業務 API（Midjourney、Suno、Flux など）の `image_url`、`reference_url` などのパラメータで参照できます。

適用シナリオ：

* Midjourney `/midjourney/imagine` を呼び出す前に、下絵を CDN にアップロードして URL を取得する。
* 前のステップで生成した動画をキャッシュし、次のステップの入力として使用する。
* ユーザーがアップロードした素材を一時的にホスティングし、独自の S3 を構築することを避ける。

> ℹ️ 本 API は **AceDataCloud プラットフォーム管理 API** に属し、共通プレフィックスは `https://platform.acedata.cloud/api/v1/` です。

## API 概要

| 項目 | 内容 |
| - | - |
| メソッド | `POST` |
| URL | `https://platform.acedata.cloud/api/v1/files/` |
| 認証 | ✅ アカウントトークンが必要 |
| Content-Type | `multipart/form-data`（**JSON ではありません**） |

## 認証の説明（アカウントトークンの取得方法）

リクエストヘッダー：

```http theme={null}
Authorization: Bearer ${PLATFORM_TOKEN}
```

取得方法： [AceDataCloud プラットフォーム](https://platform.acedata.cloud)にログイン → [Account Token コンソール](https://platform.acedata.cloud/console/platform-tokens) → 「作成」ボタンをクリック。詳細は[AceDataCloud プラットフォームアカウントトークンの管理](https://platform.acedata.cloud/documents/platform-token)を参照してください。

## リクエストボディ（multipart/form-data）

| フィールド | 型 | 必須 | 説明 |
| - | - | - | - |
| `file` | file | ✅ | バイナリファイルストリーム。**単一ファイルの上限はデフォルトで 100 MB** |

## リクエスト例

### cURL

```shell theme={null}
curl -X POST 'https://platform.acedata.cloud/api/v1/files/' \
  -H 'accept: application/json' \
  -H "authorization: Bearer ${PLATFORM_TOKEN}" \
  -F 'file=@./photo.jpg'
```

### Python

```python theme={null}
import os
import requests

PLATFORM_TOKEN = os.environ["PLATFORM_TOKEN"]

with open("photo.jpg", "rb") as f:
    resp = requests.post(
        "https://platform.acedata.cloud/api/v1/files/",
        headers={
            "accept": "application/json",
            "authorization": f"Bearer {PLATFORM_TOKEN}",
        },
        files={"file": ("photo.jpg", f, "image/jpeg")},
        timeout=60,
    )

data = resp.json()
print(f"✅ アップロード成功：{data['file_url']}")
# 他の業務 API で直接使用：
# requests.post("https://api.acedata.cloud/midjourney/imagine",
#     json={"prompt": "...", "image_urls": [data["file_url"]]}, ...)
```

### Node.js

```javascript theme={null}
const fs = require('fs')
const FormData = require('form-data')

const form = new FormData()
form.append('file', fs.createReadStream('./photo.jpg'))

const r = await fetch('https://platform.acedata.cloud/api/v1/files/', {
  method: 'POST',
  headers: {
    authorization: `Bearer ${process.env.PLATFORM_TOKEN}`,
    ...form.getHeaders(),
  },
  body: form,
})
const data = await r.json()
console.log('CDN URL:', data.file_url)
```

## レスポンス例（HTTP 200）

```json theme={null}
{
  "file_url": "https://cdn.acedata.cloud/qrd7gw.jpg"
}
```

`file_url` フィールドをそのまま他の業務 API で使用すれば問題ありません——CDN URL は現在公開アクセス可能で、認証は不要です。これを恒久的なアーカイブの保証と見なさないでください。

## レスポンスフィールドの説明

| フィールド | 型 | 説明 |
| - | - | - |
| `file_url` | string | CDN アクセス URL |

## エラー処理

| HTTP | レスポンス例 | 意味 |
| - | - | - |
| 400 | `{"error":"No file provided"}` | `file` フィールドが添付されていない、またはフィールド名が誤っている |
| 401 | DRF 認証エラーレスポンス | アカウントトークンがない、または無効なアカウントトークンを使用している |
| 413 | `{"error":"File too large","max_bytes":...}` | ファイルが 100 MB（デフォルト）を超えている |

## 実用的なヒント

* **画像を下絵としてアップロード**：Midjourney `image_urls`、Flux `image_url`、Veo `reference_url` はいずれも CDN URL を受け付け、base64 は受け付けません。まず本 API で URL を取得するのが一般的な操作です。
* **機密データをアップロードしないでください**：返される URL は公開アクセス可能です。保存期間はプラットフォームの現在のストレージポリシーに従います。長期アーカイブには自分のオブジェクトストレージを使用してください。
* **大量アップロード**：並行処理を制御し、各アップロードにタイムアウトを設定してください。スループットはファイルサイズとネットワーク環境に依存します。

## 関連 API

* [AceDataCloud プラットフォームサービス一覧の取得](https://platform.acedata.cloud/documents/platform-service-list) — URL 入力を受け付ける業務サービスを見つける
* [AceDataCloud プラットフォーム API 認証情報の作成](https://platform.acedata.cloud/documents/platform-credential-create) — アップロード後、通常の次のステップは認証情報を作成して業務 API を呼び出すことです


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.