> ## 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.

# Загрузка файлов на CDN платформы AceDataCloud

> Platform API guide - Ace Data Cloud

Загрузите локальный файл на CDN платформы AceDataCloud, чтобы получить общедоступный URL (в формате `https://cdn.acedata.cloud/xxxxxx.png`), который можно сразу использовать в параметрах `image_url`, `reference_url` и других параметрах иных бизнес-интерфейсов (таких как Midjourney, Suno, Flux).

Подходящие сценарии:

* Перед вызовом Midjourney `/midjourney/imagine` сначала загрузите изображение-референс на CDN, чтобы получить URL.
* Кэшируйте видео, созданное на предыдущем шаге, для использования в качестве входных данных на следующем шаге.
* Временно размещайте материалы, загруженные пользователями, чтобы избежать самостоятельного развёртывания S3.

> ℹ️ Этот интерфейс относится к **API управления платформой AceDataCloud** с единым префиксом `https://platform.acedata.cloud/api/v1/`.

## Обзор интерфейса

| Пункт | Содержание |
| - | - |
| Метод | `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 МБ** |

## Примеры запросов

### 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']}")
# 直接用于其他业务接口：
# 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` в других бизнес-интерфейсах — CDN URL сейчас общедоступен и не требует авторизации; не рассматривайте его как гарантию постоянного хранения.

## Описание полей ответа

| Поле | Тип | Описание |
| - | - | - |
| `file_url` | string | URL доступа к CDN |

## Обработка ошибок

| HTTP | Пример ответа | Значение |
| - | - | - |
| 400 | `{"error":"No file provided"}` | Поле `file` не приложено или имя поля неверно |
| 401 | Ответ об ошибке аутентификации DRF | Токен аккаунта отсутствует или недействителен |
| 413 | `{"error":"File too large","max_bytes":...}` | Файл превышает 100 МБ（по умолчанию） |

## Практические советы

* **Загрузка изображений для референса**: `image_urls` Midjourney, `image_url` Flux и `reference_url` Veo принимают CDN URL, **не** принимают base64. Сначала получить URL с помощью этого интерфейса — стандартная операция.
* **Не загружайте конфиденциальные данные**: возвращённый URL доступен публично; срок хранения определяется текущей политикой хранения платформы, для долгосрочного архивирования используйте собственное объектное хранилище.
* **Массовая загрузка**: контролируйте параллелизм и устанавливайте тайм-аут для каждой загрузки; пропускная способность зависит от размера файлов и сетевой среды.

## Связанные интерфейсы

* [Получение списка сервисов платформы AceDataCloud](https://platform.acedata.cloud/documents/platform-service-list) — найдите бизнес-сервисы, принимающие URL в качестве входных данных
* [Создание API-учётных данных платформы AceDataCloud](https://platform.acedata.cloud/documents/platform-credential-create) — после загрузки обычно следующим шагом является создание учётных данных для вызова бизнес-интерфейсов


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