Получение файла из хэша в js-ipfs - PullRequest
0 голосов
/ 10 мая 2018

Я запускаю приведенный ниже скрипт и использую узел ipfs для загрузки и получения файла, используя его хеш, но функция ipfs cat возвращает только путь к файлу из хеша, а не содержимое.

const node = new Ipfs()

node.once('ready', () => console.log('IPFS node is ready'))

$("#saveIt").click(function(){
  var toStore = document.getElementById('fileInput').value

  node.files.add(new node.types.Buffer.from(toStore), (err, res) => {
    if (err || !res) {
      return console.error('ipfs add error', err, res)
    }

    res.forEach((file) => {
      if (file && file.hash) {
        var newVar = file.hash
        var newVar1 = newVar.slice(0, 23)
        var leng = newVar.length
        var newVar2 = newVar.slice(24, leng)
        console.log(newVar1 + ' ' + newVar2)
        mediachain.setUserFile($("#passwordSetter").val(), newVar1, newVar2)
        node.files.cat(file.hash, (err, data) => {
          if (err) {
            return console.error('ipfs cat error', err)
          }
          document.getElementById('fileDisplayArea').innerText = data
        })
      } else {
        console.error("Error: invalid file")
      }
    })
  })
})

Кто-нибудь имеет опыт работы с js-ipfs и может мне помочь?

1 Ответ

0 голосов
/ 25 мая 2018

У меня была похожая проблема с ipfs. если у вас уже есть хеш, вы можете получить содержимое таким способом.

const validCID = 'QmQFPQ5f94byxs7zvHMLJcx5WzThRhN4MfAF4ZisSXofKC'

ipfs.files.get(validCID, function (err, files) {
files.forEach((file) => {
console.log(file.path)
console.log("File content >> ",file.content.toString('utf8'))
})
})
...