THE DROP POINT
==============
ATProto-native file hosting.
Files live in your own PDS. dr0p.in keeps no database, account, password,
access token, or copy of the file. It writes and resolves at.pasteb.paste
records, compatible with dropb.at.
/////----------------------------------------------------------------
Upload
------
curl -H "Authorization: Bearer $ATPROTO_TOKEN" \
-F'file=@thing.txt' \
https://dr0p.in
The response is the public URL:
https://dr0p.in/p/did:plc:.../d/3abc.../thing.txt
Delete
------
curl -X DELETE \
-H "Authorization: Bearer $ATPROTO_TOKEN" \
https://dr0p.in/p/did:plc:.../d/3abc.../thing.txt
Get a token
-----------
Ask your PDS for an access JWT. Use an app password, never your account
password. For a bsky.social account:
PDS=https://bsky.social
read -r ATPROTO_HANDLE
read -rs ATPROTO_APP_PASSWORD
ATPROTO_TOKEN=$(
jq -n \
--arg identifier "$ATPROTO_HANDLE" \
--arg password "$ATPROTO_APP_PASSWORD" \
'{identifier:$identifier,password:$password}' |
curl -fsS "$PDS/xrpc/com.atproto.server.createSession" \
-H 'Content-Type: application/json' \
--data-binary @- |
jq -r .accessJwt
)
----------------------------------------------------------------/////
proxy_cap = 50 MiB
actual_cap = uploader's PDS
storage = uploader's ATProto PDS
record = at.pasteb.paste
access = public
The URL lasts as long as the record and blob remain in your repo.