Не удалось использовать ipfs.add () для загрузки изображения в ipfs - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь загрузить изображение на ipfs в моем приложении svelte. Это код, в который я пытаюсь загрузить изображение:

const uploadFile = async (file) => {

    const ipfs = await IPFS.create();

    const result = await ipfs.add(file);
    console.log(result)
}

file в формате ArrayBuffer.

Однако возвращается сообщение об ошибке:

(8) index.js:54 Uncaught (in promise) TypeError: callback is not a function
    at Function../node_modules/peer-info/src/index.js.PeerInfo.create (index.js:54)
    at GossipSub._onIncomingStream (index.js:174)
    at Upgrader._onStream (upgrader.js:313)
    at Mplex.onStream (upgrader.js:235)

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Спасибо, Mionutm !!

Это было полезно. Проблема была в том, что file был не в правильном формате. Я думал, ipfs ожидает ArrayBuffer, поэтому я прочитал file в ArrayBuffer формате.

Однако мы могли бы добавить загруженный файл в ipfs, просто открыв его свойство следующим образом:

const file = e.srcElement.files[0];
for await (const result of ipfs.add(file)) {
    console.log(result);
}

Это решило ошибки add <suspended> и invalid content.

Тем не менее, TypeError: callback is not a function все еще не решена, что, я думаю, является ошибкой, создаваемой node_modules (не уверен ).

0 голосов
/ 20 апреля 2020

Вы можете попробовать добавить файл с помощью ipfs.add в a для l oop:

for await (const result of ipfs.add(file)) {
    console.log(result);
}

Более подробная информация здесь: https://github.com/ipfs/js-ipfs/blob/master/docs/core-api/FILES.md#add

...