···265266 const blobUrl = `${pdsEndpoint}/xrpc/com.atproto.sync.getBlob?did=${encodeURIComponent(did)}&cid=${encodeURIComponent(cid)}`;
267268- // Allow up to 100MB per file blob
269- let content = await safeFetchBlob(blobUrl, { maxSize: 100 * 1024 * 1024 });
270271 // If content is base64-encoded, decode it back to gzipped binary
272 if (base64 && encoding === 'gzip') {
···265266 const blobUrl = `${pdsEndpoint}/xrpc/com.atproto.sync.getBlob?did=${encodeURIComponent(did)}&cid=${encodeURIComponent(cid)}`;
267268+ // Allow up to 100MB per file blob, with 2 minute timeout
269+ let content = await safeFetchBlob(blobUrl, { maxSize: 100 * 1024 * 1024, timeout: 120000 });
270271 // If content is base64-encoded, decode it back to gzipped binary
272 if (base64 && encoding === 'gzip') {