diff --git a/src/pages/image.js b/src/pages/image.js index 439c25d..5e6e2ea 100644 --- a/src/pages/image.js +++ b/src/pages/image.js @@ -12,8 +12,9 @@ module.exports = async function imagePage ({ blobId, imageSize }) { return new Promise((resolve) => { pull( bufferSource, - pull.collect((err, bufferArray) => { + pull.collect(async (err, bufferArray) => { if (err) { + await blob.want({ blobId }) sharp({ create: { width: imageSize, diff --git a/src/pages/models/blob.js b/src/pages/models/blob.js index 64d580a..2f14eb3 100644 --- a/src/pages/models/blob.js +++ b/src/pages/models/blob.js @@ -8,5 +8,10 @@ module.exports = { debug('requested blob: %s', blobId) const ssb = await cooler.connect() return cooler.read(ssb.blobs.get, blobId) + }, + want: async ({ blobId }) => { + debug('requested blob: %s', blobId) + const ssb = await cooler.connect() + return cooler.get(ssb.blobs.want, blobId) } } diff --git a/src/pages/models/lib/cooler.js b/src/pages/models/lib/cooler.js index cb36984..d609f69 100644 --- a/src/pages/models/lib/cooler.js +++ b/src/pages/models/lib/cooler.js @@ -12,8 +12,9 @@ const rawConnect = () => new Promise((resolve, reject) => { manifest: { about: { socialValue: 'async' }, backlinks: { read: 'source' }, - blobs: { get: 'source' }, + blobs: { get: 'source', want: 'async' }, createUserStream: 'source', + createHistoryStream: 'source', get: 'sync', messagesByType: 'source', publish: 'async',