Problem#
Post blob hydration is currently broken - it's got the wrong endpoint
Current Implementation#
The BlobProcessor is fetching from CDN URLs:
https://cdn.bsky.app/img/feed_thumbnail/plain/${did}/${cid}@jpeg
https://cdn.bsky.app/img/feed_fullsize/plain/${did}/${cid}@jpeg
Solution#
- Resolve the user's PDS endpoint from their DID document via
plc.wtf(or whatever is specified in.env) - Use the proper AT Protocol API:
${pdsEndpoint}/xrpc/com.atproto.sync.getBlob?did=${did}&cid=${cid}
Reference#
See ProfileHydrationService.processProfileBlob() for the working implementation.
Also check docs/profile-blob-hydration.md section 7 for details on proper blob fetching.
Files to Update#
src/blobs/processor.ts- UpdateprocessBlob()method- May need to add PDS resolution logic or import from profile service