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 убедитесь, что для него разрешено удаление. Этому скрипту нужно только право 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, а затем передайте нужные файлы в скрипт удаления по одному.

Released as user documentation for ImgHost.