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'[email protected]' \
         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.