Перейти к основному содержимому

project-files

Эндпоинтов: 4

DELETE /api/projects/{projectId}/files

Удалить файлы проекта

Авторизация: Cookie (connect.sid) или Bearer PAT

Массовое удаление из «Файлы». Предпочтительно { items: [{ id, source }] } (вкладка «Все»). Легаси: { ids, source } (source ≠ all). uploaded — media_files+диск; incoming/outgoing — bot_messages.

Клиент: use-file-delete-mutation.

curl -s -X DELETE -b cookies.txt -H 'Content-Type: application/json' \
-d '{"items":[{"id":88,"source":"uploaded"}]}' \
'http://localhost:5000/api/projects/42/files'

Тело запроса: ProjectFilesDeleteRequest

Параметры

ИмяInОбязательныйОписаниеПример
projectIdpathдаID проекта"42"
AuthorizationheaderнетAuthorization: Bearer mcp_… — PAT агента (альтернатива cookie)"Bearer mcp_xxxxxxxx"
connect.sidcookieнетSession cookie после login. Не нужна при Authorization: Bearer mcp_…"s%3Axxxx.yyyy"

Пример тела запроса

{
"items": [
{
"id": 88,
"source": "uploaded"
},
{
"id": 501,
"source": "incoming"
}
]
}

Ответы

КодОписание
200Сколько записей удалено
400Пустой/неверный body
401Нет session / PAT
403Нет доступа к проекту

Пример ответа 200

{
"success": true,
"deleted": 2
}

GET /api/projects/{projectId}/files

Список файлов проекта

Авторизация: Cookie (connect.sid) или Bearer PAT

Таблица «Файлы»: uploaded / входящие / исходящие / all. Фильтры: имя, даты, тип, сотрудник, размер, хранилище, tokenId. Пагинация page/limit.

Auth: cookie или Bearer PAT + доступ к проекту. Клиент: use-project-files.

curl -s -b cookies.txt \
'http://localhost:5000/api/projects/42/files?category=uploaded&page=1'

Параметры

ИмяInОбязательныйОписаниеПример
projectIdpathдаID проекта"42"
categoryqueryнетallincoming
sourcequeryнет"uploaded"
fileNamequeryнет"photo"
dateFromqueryнет"2026-08-01"
dateToqueryнет"2026-08-12"
mediaTypequeryнет"photo"
uploadedByqueryнет"1001"
sizeMinqueryнет"1024"
sizeMaxqueryнет"10485760"
storageConfigIdqueryнет"local-default"
tokenIdqueryнет"7"
pagequeryнет"1"
limitqueryнет"50"
AuthorizationheaderнетAuthorization: Bearer mcp_… — PAT агента (альтернатива cookie)"Bearer mcp_xxxxxxxx"
connect.sidcookieнетSession cookie после login. Не нужна при Authorization: Bearer mcp_…"s%3Axxxx.yyyy"

Ответы

КодОписание
200Страница файлов
400Нет/неверный category
401Нет session / PAT
403Нет доступа к проекту

Пример ответа 200

{
"files": [
{
"id": 88,
"source": "uploaded",
"mediaType": "photo",
"fileId": "AgACAgIAAxkBAA",
"fileName": "cover.jpg",
"fileSize": 245760,
"createdAt": "2026-08-11T12:00:00.000Z"
}
],
"total": 120,
"page": 1,
"limit": 50
}

GET /api/projects/{projectId}/storage-quota

Квота локального хранилища

Авторизация: Cookie (connect.sid) или Bearer PAT

Занято байт по локальным бэкендам проекта, лимит (STORAGE_LIMIT_GB, null = безлимит) и мягкий флаг quotaExceeded. S3 в квоту не входит.

Клиент: StorageQuotaBar / use-storage-quota.

curl -s -b cookies.txt 'http://localhost:5000/api/projects/42/storage-quota'

Параметры

ИмяInОбязательныйОписаниеПример
projectIdpathдаID проекта"42"
AuthorizationheaderнетAuthorization: Bearer mcp_… — PAT агента (альтернатива cookie)"Bearer mcp_xxxxxxxx"
connect.sidcookieнетSession cookie после login. Не нужна при Authorization: Bearer mcp_…"s%3Axxxx.yyyy"

Ответы

КодОписание
200Квота
401Нет session / PAT
403Нет доступа к проекту

Пример ответа 200

{
"usedBytes": 52428800,
"limitBytes": 1073741824,
"quotaExceeded": false
}

GET /api/projects/{projectId}/telegram-file

Прокси файла из Telegram CDN

Авторизация: Cookie (connect.sid) или Bearer PAT

Стримит файл по fileId через бота проекта (токен не светится клиенту). Поддерживает Range. Cache-Control: private. Превью в таблице файлов, диалогах, медиа-карточках.

curl -s -o out.jpg -b cookies.txt \
'http://localhost:5000/api/projects/42/telegram-file?fileId=AgAC&tokenId=7'

Параметры

ИмяInОбязательныйОписаниеПример
projectIdpathдаID проекта"42"
fileIdqueryдаTelegram file_id"AgACAgIAAxkBAA"
tokenIdqueryнетID токена бота"7"
fileNamequeryнет"photo.jpg"
AuthorizationheaderнетAuthorization: Bearer mcp_… — PAT агента (альтернатива cookie)"Bearer mcp_xxxxxxxx"
connect.sidcookieнетSession cookie после login. Не нужна при Authorization: Bearer mcp_…"s%3Axxxx.yyyy"

Ответы

КодОписание
200Байты файла (или 206 Partial Content)
400Нет fileId / projectId
401Нет session / PAT
403Нет доступа к проекту
404Нет токена или файла в Telegram