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.