dev.hatk.uploadBlob
Upload a binary blob (image, audio, etc.) via the authenticated user's PDS.
- Type: Procedure (POST)
- Auth: Required (session cookie or DPoP token)
- Content-Type:
*/*(set to the blob's MIME type)
Request
Send the raw binary data as the request body with the appropriate Content-Type header.
bash
curl -X POST "http://127.0.0.1:3000/xrpc/dev.hatk.uploadBlob" \
-H "Authorization: DPoP <token>" \
-H "Content-Type: image/jpeg" \
--data-binary @photo.jpgClient usage
typescript
import { callXrpc } from "$hatk/client";
const result = await callXrpc("dev.hatk.uploadBlob", file);
// result.blob contains the blob referenceResponse
json
{
"blob": {
"$type": "blob",
"ref": { "$link": "bafkrei..." },
"mimeType": "image/jpeg",
"size": 123456
}
}Using blobs in records
After uploading, reference the blob in a record field:
typescript
import { callXrpc } from "$hatk/client";
const uploadResult = await callXrpc("dev.hatk.uploadBlob", imageFile);
await callXrpc("dev.hatk.createRecord", {
collection: "fm.teal.alpha.feed.play",
repo: userDid,
record: {
createdAt: new Date().toISOString(),
image: uploadResult.blob,
},
});