Skip to content

Bestanden uploaden met API Token

Uploaden met een API Token is bedoeld voor scripts, automatisering en programma's van derden. Je hoeft de webpagina niet te openen: met het ImgHost-adres, het Token, het bestandspad en een echt uploadkanaal kan het bestand worden geüpload en krijg je na afloop de bestandslink terug.

API Token bewerken

Voorbereiding

Open in het beheerpaneel:

text
System Settings -> Security Settings -> API Token

Controleer bij het maken of bewerken van een API Token dat uploaden is toegestaan en kies een echt standaard uploadkanaal. Uploads via API Token gebruiken geen “slimme verdeling”; ook scripts moeten een echt kanaal doorgeven.

Uploadscripts downloaden

De documentatie bevat twee Node.js-scripts:

ScriptGebruik
Script voor enkele uploadRoept één keer /upload aan; geschikt voor kleine bestanden en API-tests
Script voor upload in delenGebruikt chunk-, direct-upload- of platformsessies; geschikt voor grote bestanden

Je hebt lokaal Node.js 18 of hoger nodig.

Beschikbare kanalen tonen

Beide scripts kunnen eerst tonen welke uploadkanalen het huidige API Token mag gebruiken:

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

Voor deze modus zijn --file en --channel niet nodig. Het resultaat bevat het standaardkanaal, de parameter van het hoofdkanaal, namen van subkanalen en of load balancing is ingeschakeld. Sleutels, vernieuwingstokens en andere gevoelige configuratie worden niet teruggegeven.

Welke uploadmethode kies je

MethodeGeschikt voorUitleg
Enkele uploadKleine bestanden, eenvoudige scripts, API-testsHet volledige bestand gaat in één verzoek naar /upload
Upload in delenGrote bestanden of bestanden die snel time-out gevenHet script gebruikt per kanaal chunks, directe upload of een platformsessie

Gebruik bij grotere bestanden bij voorkeur het script voor upload in delen. Een enkele upload wordt beperkt door de request body van Cloudflare, het geheugen van de Worker en de limieten van het doelkanaal.

Enkele upload

Het script voor een enkele upload doet één verzoek naar /upload.

powershell
node imghost-token-single-upload.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --file "D:\test\image.png" `
  --channel s3 `
  --folder "photos/2026"

Je kunt het Token ook in een omgevingsvariabele zetten:

powershell
$env:IMGHOST_API_TOKEN="your API Token"
node imghost-token-single-upload.mjs --base-url "https://your-domain" --file "D:\test\image.png" --channel s3

Parameters voor enkele upload

ParameterVerplichtBeschrijving
--base-url <url>JaAdres van de ImgHost-site, bijvoorbeeld https://image.ai6.me
--token <token>JaAPI Token; kan ook via IMGHOST_API_TOKEN
--file <path>JaPad naar het lokale bestand
--channel <key>JaUploadkanaal
--folder <path>NeeDoelmap, bijvoorbeeld photos/2026 of /user/
--name-type <type>NeeNaamgevingsmethode, komt overeen met uploadNameType; standaard default
--channel-name <name>NeeSpecifiek subkanaal of account; zonder deze optie kiest de server volgens kanaalconfiguratie
--retries <n>NeeAantal pogingen bij tijdelijke fouten; standaard 3
--timeout-ms <n>NeeTime-out van één verzoek; standaard 180000
--output <pretty|json>NeeUitvoerformaat; standaard pretty
--save-response <path>NeeSlaat het eindresultaat op als JSON-bestand
--list-channelsNeeToont alleen beschikbare uploadkanalen voor het Token en uploadt niets

Kanalen voor enkele upload

ParameterKanaal
telegram / tgTelegram
discord / dcDiscord
cfr2 / r2Cloudflare R2
s3S3
webdav / wdWebDAV-opslagkanaal
github / ghGitHub Releases
gitlab / glGitLab Packages
huggingface / hfHugging Face
onedrive / odOneDrive
googledrive / google / gdGoogle Drive
dropbox / dbDropbox
yandex / yxYandex Disk
pcloud / pdpCloud

Limieten voor enkele upload, met het advies bestanden onder 100 MB te houden

Deze kanalen hebben een expliciete grens voor één /upload-verzoek:

KanaalLimiet enkele upload
Telegram20 MiB
Discord10 MiB
S364 MiB
WebDAV64 MiB
GitHub Releases64 MiB
GitLab Packages64 MiB

Als het bestand groter is, toont het script lokaal de bijbehorende fout. Voor andere kanalen schrijft het script geen vaste lokale 100 MB-grens; als de request body boven de capaciteit van Cloudflare of het platform komt, komt de fout van Cloudflare of de externe dienst.

Upload in delen

Het script voor upload in delen vraagt eerst met het API Token aan de server om het uploaddoel te bepalen. Daarna volgt het per kanaal het grote-bestandenproces. Je hoeft sessies, delen, samenvoegen of afronden niet zelf te schrijven.

powershell
node imghost-token-chunk-upload.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --file "D:\test\video.zip" `
  --channel github `
  --folder "photos/2026" `
  --concurrency 3

Parameters voor upload in delen

ParameterVerplichtBeschrijving
--base-url <url>JaAdres van de ImgHost-site
--token <token>JaAPI Token; kan ook via IMGHOST_API_TOKEN
--file <path>JaPad naar het lokale bestand
--channel <key>JaUploadkanaal
--folder <path>NeeDoelmap
--name-type <type>NeeNaamgevingsmethode, komt overeen met uploadNameType; standaard default
--channel-name <name>NeeSpecifiek subkanaal of account; zonder deze optie kiest de server volgens kanaalconfiguratie
--concurrency <n>NeeAantal gelijktijdige uploads; standaard 1, maximaal 3
--retries <n>NeeAantal pogingen bij tijdelijke fouten; standaard 3
--timeout-ms <n>NeeTime-out per verzoek; standaard 180000
--output <pretty|json>NeeUitvoerformaat; standaard pretty
--save-response <path>NeeSlaat het eindresultaat op als JSON-bestand
--list-channelsNeeToont alleen beschikbare uploadkanalen voor het Token en uploadt niets

Kanalen voor upload in delen

ParameterUploadroute
telegram / tgEchte chunksessie via /upload
discord / dcEchte chunksessie via /upload
cfr2 / r2Echte chunksessie via /upload
github / ghEchte chunksessie via /upload
gitlab / glEchte chunksessie via /upload
webdav / wdEchte chunksessie via /upload
s3S3 multipart upload
onedrive / odOneDrive uploadsessie
googledrive / google / gdHervatbare Google Drive-upload
dropbox / dbDropbox uploadsessie
yandex / yxYandex direct-upload-URL
pcloud / pdpCloud uploadlink
huggingface / hfHugging Face LFS-upload

Bij tests bleken gecomprimeerde bestanden op Yandex instabiel; niet-gecomprimeerde bestanden zijn wel succesvol geüpload.

Teruggegeven resultaat

Na een geslaagde upload print het script:

text
success
src: /file/photos/2026/example.png
url: https://your-domain/file/photos/2026/example.png
fileId: photos/2026/example.png
VeldBeschrijving
srcIntern bestandspad binnen de site
urlVolledige toegangslink, geschikt voor scripts of databases
fileIdBestands-ID voor latere query's, beheer of logging
channelNameHet chunk-script kan het werkelijk gebruikte subkanaal of account teruggeven

Met --output json print het script de volledige JSON voor verdere verwerking.

Enkele upload direct aanroepen

Zonder script kun je de enkele upload-API ook direct aanroepen:

text
POST https://your-domain/upload?uploadChannel=s3&uploadFolder=photos/2026&uploadNameType=default
Authorization: Bearer your API Token
Content-Type: multipart/form-data

Formulierveld:

VeldVerplichtBeschrijving
fileJaHet te uploaden bestand

Queryparameters:

ParameterVerplichtBeschrijving
uploadChannelJaEcht uploadkanaal
uploadFolderNeeDoelmap
uploadNameTypeNeeNaamgevingsmethode
channelNameNeeSpecifiek subkanaal of account

Bij succes krijg je ongeveer dit terug:

json
{
  "success": true,
  "src": "/file/photos/2026/example.png",
  "url": "https://your-domain/file/photos/2026/example.png",
  "fileId": "photos/2026/example.png"
}

Veelgestelde vragen

Een groot bestand faalt bij enkele upload

Bij een enkel /upload-verzoek gaat het volledige bestand in één keer mee. Grote bestanden kunnen door Cloudflare of het externe platform worden geblokkeerd. Gebruik voor grote bestanden het chunk-script.

--channel-name is meegegeven, maar het mislukt nog steeds

Controleer of er in het gekozen kanaal echt een subkanaal met die exacte naam bestaat en of het is ingeschakeld. Zonder --channel-name kiest de server een beschikbaar account volgens de kanaalconfiguratie.

Ik wil het resultaat in een ander programma gebruiken

Gebruik --output json of --save-response result.json. Het programma kan het veld url lezen voor de volledige bestandslink.

Upload van archieven naar Yandex faalt

Yandex ondersteunt gecomprimeerde formaten niet betrouwbaar; dit kan door platformbeleid komen. Gebruik bij Yandex bij voorkeur niet-gecomprimeerde bestanden.

Released as user documentation for ImgHost.