파일을 https://up.anon.cat/upload로 POST하세요. 기본값은 json 응답입니다.
json 말고 다른 형식을 원하면 어떤 형식인지 알려 주는 파라미터를 붙이면 됩니다. 예를 들어 https://up.anon.cat/upload?output=csv.
쓸 수 있는 응답 형식은 json, csv, text, html, gyazo입니다.
요청당 파일 하나, 최대 1 GB.
curl -i -F files[]=@yourfile.jpeg https://up.anon.cat/upload
multipart 폼 대신 요청 본문에 파일을 그대로 실어 보내고 이름은 쿼리로 넘길 수도 있습니다. 큰 파일에는 이쪽이 낫습니다. 길이를 처음부터 알 수 있고, multipart 껍데기가 없으며, 이 사이트 자체도 그렇게 하고 있습니다.
curl -i -T yourfile.iso "https://up.anon.cat/upload?filename=yourfile.iso"
두 방식 모두 파일을 CDN으로 그대로 흘려보내므로, 어느 쪽도 서버 디스크 용량에 묶이지 않습니다.
scrub=1 을 붙이면 파일이 CDN으로 가는 도중에 메타데이터가 제거됩니다. JPEG에서는 Exif와 GPS, PNG에서는 텍스트와 eXIf 청크, WebP에서는 Exif와 XMP입니다. 픽셀은 그대로이며, 이 세 가지 형식이 아닌 것은 보낸 그대로 저장됩니다.
curl -i -T photo.jpg "https://up.anon.cat/upload?filename=photo.jpg&scrub=1"
웹사이트는 업로드마다 이 값을 보냅니다. 이어올리기에서는 각 청크가 아니라 /upload/finish 호출에 붙입니다.
Anon.Notes에는 자체 API가 있으며, 위의 업로드 엔드포인트와는 다른 것입니다. 노트 하나 안에 쓰는 것이지 공개 파일 호스팅에 쓰는 것이 아닙니다. 키는 노트의 설정 페이지에서 만들고, 다른 어떤 노트에도 아무것도 할 수 없습니다.
쓰임새는 수신함으로서의 노트입니다. 배포 스크립트, CI 작업, 크론, 봇이 줄을 밀어 넣고, 당신은 나중에 휴대폰으로 읽습니다. 가입할 것도, 계속 물어볼 것도 없습니다. 노트 자체가 우편함입니다.
기본 주소는 https://anon.cat/api/notes/입니다. 전부 JSON으로 말하고, 인증 방식도 전부 같습니다.
노트를 열고 설정으로 가서 개발자 API 아래에서 키를 만듭니다. 한 번만 보여 줍니다. 그때 복사하세요. 이쪽에서는 나중에 그 키를 다시 읽어 줄 수 없습니다.
키에는 범위가 있습니다. append는 항목을 추가할 수 있고 아무것도 읽지 못하며, read는 읽을 수 있고 아무것도 쓰지 못하고, rw는 둘 다에 더해 알림까지 관리합니다. 기계에는 일이 되는 가장 좁은 범위를 주세요.
bearer 토큰으로 보내세요. 쿼리 문자열로는 절대 받지 않습니다. 쿼리 문자열은 접근 로그에 기록되기 때문입니다.
curl -H "Authorization: Bearer $ANON_KEY" https://anon.cat/api/notes/ping
키 취소는 같은 패널에서 클릭 한 번이고, 즉시 적용되며, 노트에도 다른 키에도 손대지 않습니다. 여기에 비밀번호는 어디에도 등장하지 않고, 키는 비밀번호를 읽거나 바꾸거나 노트를 삭제할 수 없습니다.
/api/notes/append로 POST하고, 본문은 text 필드에 담거나 요청 본문 전체로 보냅니다. 둘 다 같은 일을 합니다:
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
로그형 노트에는 항목이 하나 늘어납니다. 페이지형 노트는 자랍니다. 글은 문서 끝에 덧붙고 위에 덮어쓰지 않습니다. 오래된 사본을 든 스크립트가 그 사이에 당신이 쓴 것을 지워 버리지 않게 하기 위해서입니다.
응답은 노트 상태가 담긴 201입니다. notify=false를 붙이면 그 호출에서만 알림을 건너뜁니다. 오래된 줄을 다시 밀어 넣는 반복문에 필요한 것이 이것입니다.
read나 rw 키가 있으면 /api/notes/entries가 항목을 복호화해 오래된 것부터 돌려줍니다. limit과 offset으로 넘기고, order=desc는 최신부터 시작합니다. 주기적으로 확인하는 프로그램에 필요한 쪽입니다.
curl -H "Authorization: Bearer $ANON_KEY" "https://anon.cat/api/notes/entries?limit=10&order=desc"
/api/notes/note는 내용 없이 노트를 돌려줍니다. 항목이 몇 개인지, 마지막으로 쓴 때가 언제인지, 방치 정리가 가져가기까지 얼마나 남았는지입니다. API로 접근하는 것도 그 시계를 되돌리므로, 봇이 매일 쓰는 노트는 만료되지 않습니다.
노트는 키가 자기 안에 쓸 때 Discord나 Telegram으로 알려 줄 수 있습니다. 당신이 직접 쓸 때는 아무것도 보내지 않습니다. 알고 싶은 것은 기계의 움직임이지 자기 자신의 움직임이 아니기 때문입니다.
설정에서, 또는 rw 키로 API를 통해 만드세요. 만드는 즉시 테스트가 나가므로, 잘못 복사한 웹훅 URL은 그 자리에서 보이는 상태 코드가 됩니다.
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
기본적으로 알림에는 노트의 글이 전혀 실리지 않습니다. 무언가 도착했다는 것, 분량, 어떤 키가 보냈는지, 그리고 이곳으로 돌아오는 링크뿐이며, 노트는 여전히 비밀번호 뒤에 있습니다. preview=true를 넘기면 항목 자체도 함께 가는데, 그것은 당신의 글을 Discord나 Telegram에 넘긴다는 뜻입니다. 진짜 맞바꿈이고, 그래서 요청하지 않는 한 꺼져 있습니다.
Discord 웹훅 주소와 Telegram 봇만 받습니다. 임의의 URL을 일부러 제공하지 않는 이유는, 그것을 가지러 가는 쪽이 이 서버가 되기 때문입니다.