Видалення файлів через API Token
Видалення файлів через API Token підходить для скриптів, автоматизованих задач і сторонніх програм. Не потрібно відкривати адмінку: достатньо передати адресу сайту, Token і точний ID файлу, щоб видалити один або кілька файлів з ImgHost.
Видалення є операцією запису: після виконання команди файл справді буде видалено. Радимо спочатку перевірити потрібний fileId через imghost-token-list.mjs, а вже потім передавати ці ID скрипту видалення.

Підготовка
Після входу в адмінку відкрийте:
text
System Settings -> Security Settings -> API TokenПід час створення або редагування API Token переконайтеся, що цей 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.
Інтерфейс повертає потік перебігу у форматі 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, а потім передати файли скрипту видалення по одному.