Загрузка файла в хранилище
curl --request POST \
--url https://speshu.ai/api/v1/storage/upload \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'file=<string>' \
--form externalUserId=user_123 \
--form storagePolicy=TEMP_UPLOAD \
--form 0.file='@example-file'{
"id": "file_123abc",
"fileType": "IMAGE",
"mimeType": "image/jpeg",
"source": "USER_UPLOAD",
"storagePolicy": "TEMP_UPLOAD",
"url": "https://s3.speshu.ai/f/211837/2026/01/t_c2446f3cf93ac9f5.png",
"size": 154832,
"createdAt": "2025-01-03T12:00:00.000Z",
"updatedAt": "2025-01-03T12:00:00.000Z",
"externalUserId": "external_user_456",
"expiresAt": "2025-01-03T14:00:00.000Z"
}Documentation Index
Fetch the complete documentation index at: https://speshu.ai/docs/llms.txt
Use this file to discover all available pages before exploring further.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
file | binary | Да (multipart) | Файл для загрузки (multipart/form-data) |
base64 | string | Да (JSON) | Файл в формате base64 |
mimeType | string | Нет | MIME-тип файла (определяется автоматически при multipart) |
externalUserId | string | Нет | Внешний идентификатор пользователя (макс. 128 символов) |
storagePolicy | string | Нет | Политика хранения (по умолчанию TEMP_UPLOAD) |
| Политика | Срок хранения | Описание |
|---|---|---|
TEMP_UPLOAD | 24 часа | Временная загрузка пользователя (по умолчанию) |
PERMANENT | Бессрочно | Постоянное хранение |
TEMP_GENERATION (7 дней) применяется автоматически к результатам AI генераций через Media API и не может быть задана вручную.
curl -X POST "https://speshu.ai/api/v1/storage/upload" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.png" \
-F "storagePolicy=PERMANENT"
curl -X POST "https://speshu.ai/api/v1/storage/upload" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"base64": "iVBORw0KGgoAAAANSUhEUg...",
"mimeType": "image/png",
"storagePolicy": "PERMANENT"
}'
{
"id": "file_abc123",
"fileType": "IMAGE",
"mimeType": "image/png",
"source": "USER_UPLOAD",
"storagePolicy": "PERMANENT",
"url": "https://cdn.speshu.ai/files/file_abc123.png",
"size": 245760,
"externalUserId": null,
"expiresAt": null,
"createdAt": "2025-01-15T10:30:00Z",
"updatedAt": "2025-01-15T10:30:00Z"
}
API ключ передаётся в заголовке: Authorization: Bearer <SPESHU_AI_API_KEY>
ID файла
"file_123abc"
Тип файла (IMAGE, VIDEO, AUDIO)
"IMAGE"
MIME-тип файла
"image/jpeg"
Источник файла (USER_UPLOAD, AI_GENERATION)
"USER_UPLOAD"
Политика хранения (TEMP_UPLOAD, TEMP_GENERATION, PERMANENT)
"TEMP_UPLOAD"
URL файла
"https://s3.speshu.ai/f/211837/2026/01/t_c2446f3cf93ac9f5.png"
Размер файла в байтах
154832
Дата создания
"2025-01-03T12:00:00.000Z"
Дата обновления
"2025-01-03T12:00:00.000Z"
ID внешнего пользователя клиента (для группировки файлов)
"external_user_456"
Дата истечения срока действия файла
"2025-01-03T14:00:00.000Z"
curl --request POST \
--url https://speshu.ai/api/v1/storage/upload \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'file=<string>' \
--form externalUserId=user_123 \
--form storagePolicy=TEMP_UPLOAD \
--form 0.file='@example-file'{
"id": "file_123abc",
"fileType": "IMAGE",
"mimeType": "image/jpeg",
"source": "USER_UPLOAD",
"storagePolicy": "TEMP_UPLOAD",
"url": "https://s3.speshu.ai/f/211837/2026/01/t_c2446f3cf93ac9f5.png",
"size": 154832,
"createdAt": "2025-01-03T12:00:00.000Z",
"updatedAt": "2025-01-03T12:00:00.000Z",
"externalUserId": "external_user_456",
"expiresAt": "2025-01-03T14:00:00.000Z"
}