Anon.Cat API

Adresse

Send filen med POST til https://up.anon.cat/upload; som standard får du et json-svar.

Vil du have andet end json, så sæt en parameter på, der siger hvilket format, for eksempel https://up.anon.cat/upload?output=csv.

Gyldige svartyper er: json, csv, text, html og gyazo.

Én fil pr. forespørgsel, op til 1 GB.

curl-eksempel

curl -i -F files[]=@yourfile.jpeg https://up.anon.cat/upload

Upload direkte i request-body

Du kan også sende filen direkte i bodyen i stedet for som multipart-formular og give navnet med i query-strengen. Til store filer er det den bedre vej: længden er kendt fra start, der er ingen multipart-konvolut om den, og siden selv gør det på præcis den måde.

curl -i -T yourfile.iso "https://up.anon.cat/upload?filename=yourfile.iso"

Begge veje streamer filen direkte videre til CDN'et, så ingen af dem er begrænset af diskpladsen på serveren.

Fjern metadata

Med scrub=1 bliver filen renset for metadata på vej til CDN'et: Exif og GPS fra en JPEG, tekst- og eXIf-blokke fra en PNG, Exif og XMP fra en WebP. Pixlerne røres ikke, og alt der ikke er et af de tre formater gemmes præcis som det blev sendt.

curl -i -T photo.jpg "https://up.anon.cat/upload?filename=photo.jpg&scrub=1"

Websitet sender den ved hver upload. Ved en genoptagelig upload hører parameteren til kaldet /upload/finish, ikke til hver del.

Note-API

Anon.Notes har sit eget API, og det er noget andet end upload-adressen ovenfor: det skriver i én bestemt note, ikke i den offentlige filhosting. En nøgle laves inde i noten, på dens indstillingsside, og den kan ikke gøre noget som helst ved nogen anden note.

Hvad det er til: en note som modtager. Et deploy-script, et CI-job, et cron-job eller en bot skubber linjer ind i den, og du læser dem senere på telefonen. Intet at oprette og intet at spørge efter i ring: noten er postkassen.

Basisadressen er https://anon.cat/api/notes/. Alt taler JSON, og alt godkendes på samme måde.

Nøgler

Åbn din note, gå til Indstillinger, og lav en nøgle under Udvikler-API. Den vises én gang - kopiér den der, for herfra kan intet læse den tilbage til dig bagefter.

En nøgle har et omfang: append må tilføje poster og ikke læse noget, read må læse og ikke skrive noget, og rw må begge dele og styrer notifikationer. Giv en maskine det snævreste omfang, den kan udføre sit arbejde med.

Send den som bearer-token. I forespørgselsstrengen bliver den aldrig accepteret, for forespørgselsstrengen havner i adgangsloggen.

curl -H "Authorization: Bearer $ANON_KEY" https://anon.cat/api/notes/ping

At tilbagekalde en nøgle er ét klik i samme panel, virker med det samme og rører hverken noten eller nogen anden nøgle. Din adgangskode indgår ikke nogen steder her, og en nøgle kan hverken læse den, ændre den eller slette noten.

Sende en post

POST til /api/notes/append, med teksten i et felt ved navn text eller som hele forespørgslens krop. Begge dele gør det samme:

curl -H "Authorization: Bearer $ANON_KEY" -d "text=deploy 1.9.9 finished" https://anon.cat/api/notes/append

curl -H "Authorization: Bearer $ANON_KEY" -H "Content-Type: application/json" -d '{"text":"deploy 1.9.9 finished"}' https://anon.cat/api/notes/append

tail -n 20 build.log | curl -H "Authorization: Bearer $ANON_KEY" --data-binary @- https://anon.cat/api/notes/append

En log-note får én post mere. En side-note vokser: teksten lægges i bunden af dokumentet, aldrig hen over, så et script med en forældet kopi ikke kan slette det, du selv har skrevet i mellemtiden.

Svaret er 201 med notens tilstand i. Tilføj notify=false for at springe notifikationerne over i ét kald - det er, hvad en løkke, der genafspiller gamle linjer, har brug for.

Læse en note

Med en read- eller rw-nøgle giver /api/notes/entries posterne dekrypteret tilbage, ældste først. limit og offset bladrer, og order=desc begynder ved den nyeste, hvilket er, hvad et program der spørger jævnligt vil have.

curl -H "Authorization: Bearer $ANON_KEY" "https://anon.cat/api/notes/entries?limit=10&order=desc"

/api/notes/note giver noten uden indholdet: hvor mange poster den har, hvornår der sidst blev skrevet i den, og hvor længe den har igen, før oprydningen ville tage den. Hvert opslag gennem API'et nulstiller også det ur, så en note en bot skriver i hver dag udløber aldrig.

Notifikationer

En note kan sige til, når en nøgle skriver i den, på Discord eller på Telegram. At du selv skriver i den sender aldrig noget - pointen er at høre fra maskinen, ikke fra dig selv.

Sæt en op under Indstillinger, eller gennem API'et med en rw-nøgle. Der sendes en test i samme øjeblik, den oprettes, så en forkert kopieret webhook-URL bliver en statuskode, du ser med det samme.

curl -H "Authorization: Bearer $ANON_KEY" -H "Content-Type: application/json" -d '{"kind":"discord","url":"https://discord.com/api/webhooks/…","label":"deploys"}' https://anon.cat/api/notes/hooks

curl -H "Authorization: Bearer $ANON_KEY" -H "Content-Type: application/json" -d '{"kind":"telegram","bot":"123456789:AA…","chat":"-1001234567890"}' https://anon.cat/api/notes/hooks

Som udgangspunkt bærer en notifikation ingen tekst fra noten: den siger, at der kom noget, hvor meget, hvilken nøgle der sendte det, og linker herind igen - og noten står stadig bag sin adgangskode. Send preview=true med, og selve posten følger med, hvilket vil sige at give din tekst videre til Discord eller Telegram. Det er en rigtig handel, og derfor er det slået fra, medmindre du beder om det.

Kun Discord-webhook-adresser og Telegram-bots accepteres. En vilkårlig URL tilbydes bevidst ikke: det ville være denne server, der hentede den.