Skip to content

Usuwanie plików przez API Token

Usuwanie przez API Token jest przeznaczone dla skryptów, automatyzacji i programów zewnętrznych. Nie trzeba otwierać panelu administracyjnego: wystarczy adres strony, Token i jednoznaczny ID pliku, aby usunąć jeden albo kilka plików z ImgHost.

Usuwanie jest operacją zapisu. Po wykonaniu polecenia pliki zostaną naprawdę usunięte. Najpierw sprawdź w imghost-token-list.mjs, które fileId mają zostać usunięte, a dopiero potem przekaż te ID do skryptu usuwania.

Edycja API Token

Przygotowanie

W panelu administracyjnym otwórz:

text
System Settings -> Security Settings -> API Token

Podczas tworzenia lub edycji API Tokena upewnij się, że Token ma pozwolenie na usuwanie. Ten skrypt potrzebuje tylko uprawnienia delete.

Token można też przekazać przez zmienną środowiskową:

powershell
$env:IMGHOST_API_TOKEN="your API Token"

Pobieranie skryptu

SkryptZastosowanie
skrypt usuwania plikówUsuwa jeden lub kilka jednoznacznie wskazanych ID plików

Wymagany jest Node.js 18 lub nowszy.

Jak działa API usuwania

Skrypt usuwania wywołuje serwerowe API usuwania:

text
POST /api/manage/delete/batch

Request musi zawierać API Token:

text
Authorization: Bearer <token>

Przykładowe body requestu:

json
{
  "fileIds": ["photos/2026/a.txt"],
  "deleteStrictness": "strict"
}

Jeżeli fileIds zawiera jeden plik, jest to usuwanie pojedynczego pliku. Jeżeli zawiera kilka plików, jest to usuwanie zbiorcze. Serwer obsługuje maksymalnie 15 plików w jednym żądaniu, a skrypt automatycznie dzieli żądania zgodnie z --batch-size.

API zwraca strumień postępu NDJSON. Typowe zdarzenia to batch_start, file_step, file_done, batch_complete i batch_error. Skrypt odczytuje te zdarzenia i zbiera je w czytelny wynik albo wynik JSON.

Po udanym usunięciu serwer automatycznie aktualizuje indeks plików, statystyki katalogów, statystyki zajętości oraz czyści pamięć podręczną.

Parametry skryptu usuwania

ParametrWymaganyOpis
--base-url <url>TakAdres ImgHost, np. https://image.ai6.me
--token <token>TakAPI Token; można użyć IMGHOST_API_TOKEN
--file-id <id>TakID pliku do usunięcia; można podać wiele razy
--strictness <strict|soft>NieRygor usuwania; domyślnie strict
--batch-size <n>NieLiczba plików w jednym żądaniu; domyślnie 15, maksymalnie 15
--retries <n>NiePróby ponowienia przy błędach tymczasowych; domyślnie 3
--timeout-ms <n>NieTimeout jednego requestu; domyślnie 180000
--output <pretty|json>NieFormat wyjścia; domyślnie pretty
--save-response <path>NieZapisuje wynik końcowy jako JSON
-h / --helpNiePokazuje pomoc skryptu

Ten skrypt usuwa tylko pliki przekazane jawnie przez --file-id. Nie wykonuje wyszukiwania niejednoznacznego, nie czyści całych katalogów i nie czyta ID do usunięcia z listy rozdzielonej przecinkami ani z lokalnego pliku.

Usuwanie rygorystyczne i miękkie

TrybOpis
strictTryb domyślny. Jeżeli usunięcie w zdalnym magazynie się nie powiedzie, rekord ImgHost zostaje zachowany, aby można było ponowić próbę albo sprawdzić przyczynę.
softJeżeli usunięcie w zdalnym magazynie się nie powiedzie, rekord ImgHost i tak zostanie wyczyszczony, a wynik zwróci ostrzeżenie.

Jeśli zdalny plik musi zostać usunięty, aby operacja była uznana za udaną, użyj domyślnego strict. Jeśli zdalna platforma nie pozwala już usunąć pliku, ale chcesz tylko posprzątać rekord ImgHost, użyj soft.

Przykłady użycia

Usuń jeden plik:

powershell
node imghost-token-delete.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --file-id "photos/2026/a.txt"

Użyj Tokena ze zmiennej środowiskowej:

powershell
$env:IMGHOST_API_TOKEN="your API Token"

node imghost-token-delete.mjs `
  --base-url "https://your-domain" `
  --file-id "photos/2026/a.txt"

Usuń kilka plików:

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"

Wyczyść rekord ImgHost mimo błędu usuwania zdalnego:

powershell
node imghost-token-delete.mjs `
  --base-url "https://your-domain" `
  --file-id "photos/2026/a.txt" `
  --strictness soft

Wypisz JSON i zapisz wynik:

powershell
node imghost-token-delete.mjs `
  --base-url "https://your-domain" `
  --file-id "photos/2026/a.txt" `
  --output json `
  --save-response ".\delete-result.json"

Ogranicz jeden request do 5 plików:

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

Sprawdź fileId przed usunięciem

Skrypt usuwania potrzebuje ID pliku z ImgHost. Możesz najpierw użyć skryptu listy, aby zobaczyć pliki w katalogu:

powershell
node imghost-token-list.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --files `
  --dir "photos/2026" `
  --count 10 `
  --output json

Wartość name w wyniku zwykle jest fileId, które można przekazać do skryptu usuwania.

FAQ

Dlaczego usuwanie się nie powiodło, ale plik nadal jest na liście?

Przy domyślnym strict rekord ImgHost zostaje zachowany, jeżeli usunięcie w zdalnym magazynie się nie powiedzie. Zapobiega to sytuacji, w której znika tylko lokalny indeks, a zdalny plik nadal istnieje. Gdy masz pewność, że można wyczyścić sam rekord ImgHost, ponów próbę dla tego samego fileId z soft.

Dlaczego w wyniku jest ostrzeżenie?

Ostrzeżenie zwykle oznacza niekrytyczny problem podczas usuwania zdalnego, czyszczenia pamięci podręcznej albo domykania statystyk. Skrypt zbiera ostrzeżenia, żeby łatwiej było ocenić, czy trzeba ponowić operację.

Czy można usunąć cały katalog naraz?

Ten skrypt nie ma funkcji czyszczenia katalogu. Najpierw użyj skryptu listy, aby wybrać jednoznaczne fileId, a potem przekaż pliki pojedynczo do skryptu usuwania.

Released as user documentation for ImgHost.