Faz POST do ficheiro para https://up.anon.cat/upload; por omissão recebes uma resposta em json.
Se quiseres outro formato que não json, acrescenta um parâmetro a dizer qual, por exemplo https://up.anon.cat/upload?output=csv.
Os tipos de resposta válidos são: json, csv, text, html e gyazo.
Um ficheiro por pedido, até 1 GB.
curl -i -F files[]=@yourfile.jpeg https://up.anon.cat/upload
Também podes mandar o ficheiro diretamente no corpo do pedido em vez de um formulário multipart, passando o nome na query. Para ficheiros grandes é a melhor opção: o tamanho é conhecido logo à partida, não há envelope multipart, e é o que o próprio site usa.
curl -i -T yourfile.iso "https://up.anon.cat/upload?filename=yourfile.iso"
As duas formas passam o ficheiro diretamente para a CDN, por isso nenhuma delas fica limitada pelo espaço em disco do servidor.
Com scrub=1 o ficheiro perde os seus metadados a caminho da CDN: Exif e GPS de um JPEG, blocos de texto e eXIf de um PNG, Exif e XMP de um WebP. Os píxeis não são tocados, e tudo o que não seja um destes três formatos é guardado exatamente como foi enviado.
curl -i -T photo.jpg "https://up.anon.cat/upload?filename=photo.jpg&scrub=1"
O site envia-o em cada carregamento. Num carregamento retomável o parâmetro vai na chamada /upload/finish, não em cada bloco.
O Anon.Notes tem a sua própria API, e é coisa diferente do endpoint de envio acima: escreve dentro de uma única nota, não no alojamento público de ficheiros. A chave cria-se dentro da nota, na página de definições dela, e não pode fazer nada a nenhuma outra nota.
Para que serve: uma nota como recetor. Um script de deploy, um trabalho de CI, um cron ou um bot empurra linhas para lá, e tu lês mais tarde no telemóvel. Nada para registar e nada para andar a sondar: a nota é a caixa de correio.
O endereço base é https://anon.cat/api/notes/. Tudo fala JSON e tudo se autentica da mesma maneira.
Abre a nota, vai a Definições e cria uma chave em API para programadores. É mostrada uma única vez - copia-a nesse momento, porque deste lado nada consegue voltar a lê-la para ti.
Cada chave tem um âmbito: append pode acrescentar entradas e não ler nada, read pode ler e não escrever nada, e rw pode as duas coisas e gere as notificações. Dá a cada máquina o âmbito mais estreito que faça o trabalho dela.
Envia-a como token bearer. Na query string nunca é aceite, porque a query string acaba no registo de acessos.
curl -H "Authorization: Bearer $ANON_KEY" https://anon.cat/api/notes/ping
Revogar uma chave é um clique no mesmo painel, tem efeito imediato e não mexe na nota nem em nenhuma outra chave. A tua palavra-passe não entra aqui em lado nenhum, e uma chave não a consegue ler, alterar, nem apagar a nota.
POST para /api/notes/append, com o texto num campo text ou como corpo inteiro do pedido. As duas formas fazem o mesmo:
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
Uma nota em registo ganha mais uma entrada. Uma nota em página cresce: o texto é acrescentado ao fim do documento, nunca por cima, para que um script com uma cópia velha não apague aquilo que escreveste entretanto.
A resposta é um 201 com o estado da nota. Junta notify=false para saltar as notificações numa chamada - é o que quer um ciclo que está a repor linhas antigas.
Com uma chave read ou rw, /api/notes/entries devolve as entradas decifradas, da mais antiga para a mais recente. limit e offset paginam, e order=desc começa pela mais nova, que é o que serve a um programa que anda a sondar.
curl -H "Authorization: Bearer $ANON_KEY" "https://anon.cat/api/notes/entries?limit=10&order=desc"
/api/notes/note devolve a nota sem o conteúdo: quantas entradas tem, quando foi escrita pela última vez, e quanto lhe falta antes de a limpeza por inatividade a levar. Cada acesso pela API também põe esse relógio a zero, por isso uma nota onde um bot escreve todos os dias nunca expira.
Uma nota pode avisar-te quando uma chave escreve nela, por Discord ou por Telegram. Escreveres tu próprio nunca envia nada - a ideia é saberes da máquina, não de ti.
Configura uma nas Definições, ou pela API com uma chave rw. É disparado um teste no momento em que a crias, para que uma URL de webhook mal copiada seja um código de estado que vês logo.
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
Por omissão uma notificação não leva nenhum texto da nota: diz que chegou alguma coisa, quanta, que chave a enviou, e liga de volta para aqui - e a nota continua atrás da palavra-passe dela. Passa preview=true e vai também a própria entrada, o que significa entregar o teu texto ao Discord ou ao Telegram. É uma troca a sério, e é por isso que está desligado a não ser que peças.
Só são aceites endereços de webhook do Discord e bots do Telegram. Uma URL qualquer não é oferecida de propósito: seria este servidor a ir buscá-la.