Skip to content

Видалення файлів через API Token

Видалення файлів через API Token підходить для скриптів, автоматизованих задач і сторонніх програм. Не потрібно відкривати адмінку: достатньо передати адресу сайту, Token і точний ID файлу, щоб видалити один або кілька файлів з ImgHost.

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

Редагування API Token

Підготовка

Після входу в адмінку відкрийте:

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, а потім передати файли скрипту видалення по одному.

Released as user documentation for ImgHost.