Skip to content

Gestire la configurazione con API Token ​

La gestione tramite API Token è pensata per script di automazione, strumenti operativi e pannelli di controllo esterni. Può leggere e modificare canali di caricamento, impostazioni di sicurezza, impostazioni delle pagine, altre impostazioni e relazioni leggere di federazione senza aprire il pannello amministrativo.

Il permesso di gestione espone solo operazioni leggere adatte agli script. Le operazioni pesanti che richiedono conferma nella pagina web, lavori a blocchi dell'interfaccia web o pulizia degli indici di federazione restano nel pannello amministrativo della pagina web.

Modifica API Token

Preparazione ​

Nel pannello di amministrazione apri:

text
System Settings -> Security Settings -> API Token

Quando crei o modifichi un API Token, verifica che abbia il permesso di gestione. Questo permesso può cambiare la configurazione del sito, quindi assegnalo solo a script o utenti fidati.

Le azioni di scrittura dei tre script di gestione sono in anteprima per impostazione predefinita e non salvano nulla. Dopo aver controllato l'anteprima, aggiungi --apply per eseguire davvero la modifica.

Puoi anche mettere il Token in una variabile d'ambiente:

powershell
$env:IMGHOST_API_TOKEN="your API Token"

Scaricare gli script di gestione ​

La documentazione include tre script Node.js:

ScriptUso
script per le impostazioni di caricamentoGestisce canali di caricamento, sottocanali e bilanciamento del carico
script per le impostazioni del sitoGestisce sicurezza, pagine e altre impostazioni
script di federazioneGestisce azioni leggere di relazione, richieste e messaggi

Serve Node.js 18 o superiore installato in locale.

Parametri comuni ​

ParametroObbligatorioDescrizione
--base-url <url>SìIndirizzo del sito ImgHost, ad esempio https://image.ai6.me
--token <token>SìAPI Token; in alternativa usa IMGHOST_API_TOKEN
--retries <n>NoTentativi per errori temporanei; predefinito 3
--timeout-ms <n>NoTempo limite di ogni richiesta; predefinito 180000
--output <pretty|json>NoFormato di output; predefinito pretty; json è utile per automazione
--save-response <path>NoSalva il risultato finale in JSON
--applyNoEsegue davvero la scrittura; senza questo mostra solo l'anteprima
-h / --helpNoMostra l'aiuto dello script

Impostazioni di caricamento ​

Lo script delle impostazioni di caricamento elenca, legge, crea o modifica ed elimina sottocanali di caricamento. Può anche attivare o disattivare il bilanciamento del carico di un canale principale.

powershell
node imghost-token-upload-settings.mjs --base-url "https://your-domain" --token "your API Token" --list

Parametri delle impostazioni di caricamento ​

ParametroDescrizione
--listElenca i gruppi di impostazioni di caricamento
--getLegge un canale principale o un sottocanale specifico
--upsertCrea o modifica un sottocanale; senza --apply mostra solo l'anteprima
--deleteElimina un sottocanale; senza --apply mostra solo l'anteprima
--load-balance <true|false>Attiva o disattiva il bilanciamento del carico di un canale
--channel <key>Canale principale, ad esempio s3, github, telegram
--channel-name <name>Nome del sottocanale o account
--set key=valueImposta un campo; può essere ripetuto e supporta percorsi con punto
--patch-json <path>Unisce campi in blocco da un file JSON
--applySalva davvero la modifica

Parametri dei canali ​

ParametroCanale
telegram / tgTelegram
discord / dcDiscord
cfr2 / r2Cloudflare R2
s3S3
webdav / wdCanale di archiviazione WebDAV
github / ghGitHub Releases
gitlab / glGitLab Packages
huggingface / hfHugging Face
onedrive / odOneDrive
googledrive / google / gdGoogle Drive
dropbox / dbDropbox
yandex / yxYandex Disk
pcloud / pdpCloud

Esempi per le impostazioni di caricamento ​

Elencare tutte le impostazioni di caricamento:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --list

Leggere la configurazione del canale S3:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --get `
  --channel s3

Leggere un sottocanale S3:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --get `
  --channel s3 `
  --channel-name "backup-s3"

Creare o modificare un sottocanale. Prima esegui senza --apply per vedere l'anteprima:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --upsert `
  --channel webdav `
  --channel-name "backup-webdav" `
  --set enabled=false `
  --set remark="backup test"

Poi salva:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --upsert `
  --channel webdav `
  --channel-name "backup-webdav" `
  --set enabled=false `
  --set remark="backup test" `
  --apply

Eliminare un sottocanale:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --delete `
  --channel webdav `
  --channel-name "backup-webdav" `
  --apply

Attivare il bilanciamento del carico per S3:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --load-balance true `
  --channel s3 `
  --apply

Per modificare campi complessi in blocco, prepara un file JSON e usa --patch-json:

json
{
  "enabled": true,
  "remark": "primary account"
}
powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --upsert `
  --channel s3 `
  --channel-name "primary-s3" `
  --patch-json ".\s3-channel.json" `
  --apply

Impostazioni del sito ​

Lo script delle impostazioni del sito gestisce tre aree:

AreaParametroDescrizione
SicurezzasecurityAutenticazione utente, autenticazione admin, dispositivi di login, API Token, moderazione immagini, limiti utente, WebDAV e altro
PaginapagePagina globale, pagina utente, pagina admin e opzioni visive
AltroothersAPI immagine casuale, galleria pubblica, nodo locale di federazione, tag automatici, geolocalizzazione IP, backup, OCR e altro

Usa prima --list-sections per vedere aree, sezioni e campi supportati:

powershell
node imghost-token-site-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --list-sections

Parametri delle impostazioni del sito ​

ParametroDescrizione
--list-sectionsElenca aree, sezioni e campi modificabili
--getLegge una sezione di configurazione
--area <security|page|others>Seleziona l'area
--section <name>Seleziona la sezione; usa il nome mostrato da --list-sections
--set key=valueImposta un campo; può essere ripetuto
--applySalva davvero la modifica

Nell'area page, --set usa l'id della voce di pagina, ad esempio starsEffect=true. Nelle aree security e others, --set usa il nome del campo della sezione, ad esempio [email protected].

Esempi per le impostazioni del sito ​

Leggere le notifiche di aggiornamento del sistema:

powershell
node imghost-token-site-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --get `
  --area security `
  --section systemUpdate

Modificare l'email delle notifiche di aggiornamento. Prima esegui senza --apply:

powershell
node imghost-token-site-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --area security `
  --section systemUpdate `
  --set email="[email protected]"

Poi salva:

powershell
node imghost-token-site-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --area security `
  --section systemUpdate `
  --set email="[email protected]" `
  --apply

Modificare l'effetto stelle nella pagina admin:

powershell
node imghost-token-site-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --area page `
  --section adminSettings `
  --set starsEffect=true `
  --apply

Modificare la lingua della geolocalizzazione IP:

powershell
node imghost-token-site-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --area others `
  --section ipGeolocation `
  --set language="en" `
  --apply

La configurazione del nodo locale di federazione può leggere e modificare campi ordinari, come abilitazione, cartelle di sincronizzazione e codici invito. La conferma del dominio non passa dall'API Token; se il pannello segnala che il dominio del nodo locale non coincide con il dominio visitato, conferma dal pannello nella pagina web.

Relazioni di federazione ​

Lo script di federazione gestisce stato del nodo locale, nodi a cui mi sono unito, nodi che si sono uniti al mio, messaggi, richieste di adesione, nuova richiesta senza relazione, accettazione, rifiuto e azioni leggere che non richiedono pulizia degli indici.

Aggiornare indici, eliminare indici di federazione e confermare cambi di dominio richiedono il flusso completo della pagina web. Lo script non gestisce queste operazioni pesanti.

Confine tra operazioni leggere e pesanti ​

OperazioneSupporto nello scriptDescrizione
Vedere stato del nodo locale e liste relazioniSupportatoSolo lettura del registro relazioni
Vedere messaggi e inviare messaggiSupportatoLettura e scrittura dei messaggi della relazione
Richiedere adesione a un altro nodoSupportatoAvvia la richiesta tramite link invito
Rifare richiesta su record senza relazioneSupportatoSolo per scheda outgoing con lastResult=none; richiede codice invito di 6 caratteri
Annullare richiesta outgoing in attesaSupportatoAnnulla solo richieste pending
Accettare o rifiutare richiesta incomingSupportatoGestisce solo richieste verso il tuo nodo
Rimuovere relazione incoming accettataSupportatoAggiorna il registro in ingresso e avvisa l'altra parte
Eliminare record incoming terminaleSupportatoElimina solo record in ingresso conclusi
Annullare sottoscrizione outgoing accettataPagina webRichiede eliminazione a blocchi dell'indice locale di federazione
Eliminare record outgoing terminalePagina webPuò richiedere pulizia preventiva dell'indice
Confermare o annullare cambio dominioPagina webRichiede conferma del dominio corrente e gestione degli indici
Pubblicare, recuperare o eliminare indici in bloccoPagina webSono lavori a blocchi dell'interfaccia web

Parametri di federazione ​

ParametroDescrizione
--statusMostra stato del nodo locale e relazioni nei due sensi
--listElenca le relazioni di federazione
--chatLegge i messaggi memorizzati di una relazione
--send-messageInvia un messaggio a un nodo con relazione stabilita
--joinRichiede adesione tramite link invito
--reapplyRifà richiesta per un record senza relazione; richiede codice invito di 6 caratteri
--acceptAccetta una richiesta verso il tuo nodo
--denyRifiuta una richiesta verso il tuo nodo
--cancelAnnulla richiesta outgoing pending o rimuove relazione incoming accettata
--deleteElimina record incoming terminale
--direction <outgoing|incoming|all>Direzione; outgoing sono i nodi a cui mi sono unito, incoming quelli uniti al mio
--domain <url>Dominio del nodo della relazione
--invite-link <url>Link invito dell'altro nodo
--invite-code <code>Codice invito di 6 caratteri per --reapply
--text <message>Testo del messaggio
--applySalva davvero la modifica

Esempi di federazione ​

Vedere stato locale e relazioni:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --status

Elencare solo i nodi a cui mi sono unito:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --list `
  --direction outgoing

Elencare solo i nodi uniti al mio:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --list `
  --direction incoming

Richiedere adesione tramite link invito. Prima esegui senza --apply:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --join `
  --invite-link "https://peer-domain/federation/invite/abcdef"

Poi salva:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --join `
  --invite-link "https://peer-domain/federation/invite/abcdef" `
  --apply

Rifare richiesta per un record senza relazione:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --reapply `
  --domain "https://peer-domain" `
  --invite-code "abc123" `
  --apply

Accettare una richiesta verso il tuo nodo:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --accept `
  --domain "https://peer-domain" `
  --apply

Rifiutare una richiesta verso il tuo nodo:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --deny `
  --domain "https://peer-domain" `
  --apply

Inviare un messaggio a un nodo con relazione stabilita:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --send-message `
  --direction outgoing `
  --domain "https://peer-domain" `
  --text "Hello, this is a test message." `
  --apply

Annullare una richiesta outgoing pending:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --cancel `
  --direction outgoing `
  --domain "https://peer-domain" `
  --apply

Rimuovere una relazione incoming accettata:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --cancel `
  --direction incoming `
  --domain "https://peer-domain" `
  --apply

Eliminare un record incoming terminale:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --delete `
  --direction incoming `
  --domain "https://peer-domain" `
  --apply

L'annullamento di una sottoscrizione outgoing accettata e l'eliminazione di record outgoing devono restare nel pannello della pagina web, perché possono richiedere prima la pulizia dell'indice locale di federazione.

Dominio non coerente ​

Se il dominio salvato nel nodo locale e il dominio pending della relazione non coincidono, lo script restituisce subito errore e mostra currentDomain e pendingDomain. Questa situazione va risolta nella pagina web, perché dopo un cambio dominio servono anche conferma e pulizia degli indici in uscita.

Se durante la richiesta di adesione l'altra parte restituisce FEDERATION_NODE_DOMAIN_MISMATCH, il dominio del link invito non corrisponde al dominio salvato nel nodo locale dell'altra parte. L'API restituisce currentOrigin e detectedOrigin; usa il dominio corrente confermato dall'altra parte oppure chiedi all'altra parte di confermarlo nel pannello della pagina web.

Domande frequenti ​

Perché il comando di modifica non ha effetto ​

I comandi di scrittura sono in anteprima per impostazione predefinita. Dopo aver controllato l'anteprima, aggiungi --apply per salvare davvero.

Come so quali campi posso modificare ​

Per le impostazioni di caricamento usa prima --get per vedere la struttura del sottocanale esistente. Per sicurezza, pagina e altre impostazioni usa prima --list-sections per vedere aree, sezioni e campi consentiti.

Voglio usare il risultato in un altro programma ​

Usa --output json oppure --save-response result.json. Il programma può leggere direttamente il file JSON salvato.

Released as user documentation for ImgHost.