Удаление файлов через API Token
Скрипт удаления через API Token предназначен для скриптов, автоматизации и сторонних программ. Панель администратора открывать не нужно: достаточно передать адрес сайта, Token и точный ID файла, чтобы удалить один или несколько файлов из ImgHost.
Удаление изменяет данные. После выполнения команды файлы действительно будут удалены. Поэтому сначала проверьте нужные fileId через imghost-token-list.mjs, а затем передайте эти ID в скрипт удаления.

Подготовка
В панели администратора откройте:
text
System Settings -> Security Settings -> API TokenПри создании или редактировании API Token убедитесь, что для него разрешено удаление. Этому скрипту нужно только право delete.
Token можно также поместить в переменную окружения:
powershell
$env:IMGHOST_API_TOKEN="your API Token"Скачать скрипт
| Скрипт | Назначение |
|---|---|
| скрипт удаления файлов | Удаляет один или несколько явно указанных ID файлов |
Требуется Node.js 18 или новее.
Как работает API удаления
Скрипт удаления вызывает серверный API удаления:
text
POST /api/manage/delete/batchЗапрос должен содержать API Token:
text
Authorization: Bearer <token>Пример тела запроса:
json
{
"fileIds": ["photos/2026/a.txt"],
"deleteStrictness": "strict"
}Если в fileIds указан один файл, это удаление одного файла. Если файлов несколько, это пакетное удаление. Сервер обрабатывает не больше 15 файлов за один запрос, а скрипт автоматически делит запросы согласно --batch-size.
API возвращает поток хода выполнения в формате NDJSON. Частые события: batch_start, file_step, file_done, batch_complete и batch_error. Скрипт разбирает эти события и собирает их в понятный результат или результат JSON.
После успешного удаления сервер автоматически обновляет индекс файлов, статистику каталогов, статистику занятого места и очищает кэш.
Параметры скрипта удаления
| Параметр | Обязателен | Описание |
|---|---|---|
--base-url <url> | Да | Адрес ImgHost, например https://image.ai6.me |
--token <token> | Да | API Token; можно использовать IMGHOST_API_TOKEN |
--file-id <id> | Да | ID файла для удаления; можно указать несколько раз |
--strictness <strict|soft> | Нет | Строгость удаления; по умолчанию strict |
--batch-size <n> | Нет | Число файлов в одном запросе; по умолчанию 15, максимум 15 |
--retries <n> | Нет | Повторы при временных ошибках; по умолчанию 3 |
--timeout-ms <n> | Нет | Таймаут одного запроса; по умолчанию 180000 |
--output <pretty|json> | Нет | Формат вывода; по умолчанию pretty |
--save-response <path> | Нет | Сохранить итоговый результат в JSON |
-h / --help | Нет | Показать справку скрипта |
Этот скрипт удаляет только файлы, явно переданные через --file-id. Он не выполняет неточный поиск, не очищает каталог целиком и не читает ID для удаления из списка через запятую или локального файла.
Строгое и мягкое удаление
| Режим | Описание |
|---|---|
strict | Режим по умолчанию. Если удаление в удаленном хранилище не удалось, запись ImgHost сохраняется, чтобы можно было повторить попытку или разобраться в причине. |
soft | Если удаление в удаленном хранилище не удалось, запись ImgHost все равно очищается, а в результате возвращается предупреждение. |
Если удаление должно считаться успешным только после удаления файла в удаленном хранилище, используйте режим strict по умолчанию. Если удаленная платформа уже не позволяет удалить файл, но нужно очистить только запись ImgHost, используйте soft.
Примеры
Удалить один файл:
powershell
node imghost-token-delete.mjs `
--base-url "https://your-domain" `
--token "your API Token" `
--file-id "photos/2026/a.txt"Использовать Token из переменной окружения:
powershell
$env:IMGHOST_API_TOKEN="your API Token"
node imghost-token-delete.mjs `
--base-url "https://your-domain" `
--file-id "photos/2026/a.txt"Удалить несколько файлов:
powershell
node imghost-token-delete.mjs `
--base-url "https://your-domain" `
--file-id "photos/2026/a.txt" `
--file-id "photos/2026/b.txt" `
--file-id "photos/2026/c.txt"Очистить запись ImgHost, даже если удаление в удаленном хранилище не удалось:
powershell
node imghost-token-delete.mjs `
--base-url "https://your-domain" `
--file-id "photos/2026/a.txt" `
--strictness softВывести JSON и сохранить результат:
powershell
node imghost-token-delete.mjs `
--base-url "https://your-domain" `
--file-id "photos/2026/a.txt" `
--output json `
--save-response ".\delete-result.json"Ограничить один запрос 5 файлами:
powershell
node imghost-token-delete.mjs `
--base-url "https://your-domain" `
--file-id "photos/2026/a.txt" `
--file-id "photos/2026/b.txt" `
--batch-size 5Проверьте fileId перед удалением
Скрипту удаления нужен ID файла в ImgHost. Сначала можно посмотреть файлы в каталоге через скрипт списка:
powershell
node imghost-token-list.mjs `
--base-url "https://your-domain" `
--token "your API Token" `
--files `
--dir "photos/2026" `
--count 10 `
--output jsonЗначение name в результате обычно и есть fileId, который можно передать скрипту удаления.
Частые вопросы
Почему удаление не удалось, но файл все еще есть в списке?
В режиме strict по умолчанию запись ImgHost сохраняется, если удаление в удаленном хранилище не удалось. Это защищает от ситуации, когда локальный индекс уже удален, а удаленный файл все еще существует. Если вы уверены, что можно очистить только запись ImgHost, повторите попытку для того же fileId с soft.
Почему в результате есть предупреждения?
Предупреждения обычно означают некритичную проблему при удалении в удаленном хранилище, очистке кэша или завершении обновления статистики. Скрипт собирает предупреждения, чтобы было проще решить, нужна ли повторная попытка.
Можно ли удалить целый каталог за один раз?
В этом скрипте нет функции очистки каталога. Сначала используйте скрипт списка, чтобы выбрать точные fileId, а затем передайте нужные файлы в скрипт удаления по одному.