示例#1
0
文件: get.js 项目: JGAntunes/js-ipfs
    argv.ipfs.object.get(argv.key, { enc: 'base58' }, (err, node) => {
      if (err) {
        throw err
      }

      dagPB.util.cid(node, (err, result) => {
        if (err) {
          throw err
        }

        let data = node.data

        if (Buffer.isBuffer(data)) {
          data = node.data.toString(argv.dataEncoding || undefined)
        }

        const answer = {
          Data: data,
          Hash: result.toBaseEncodedString(argv.cidBase),
          Size: node.size,
          Links: node.links.map((l) => {
            return {
              Name: l.name,
              Size: l.size,
              Hash: l.cid.toBaseEncodedString(argv.cidBase)
            }
          })
        }

        print(JSON.stringify(answer))
      })
    })
示例#2
0
 (cb) => {
   dagPB.util.serialize(node, (err, _serialized) => {
     expect(err).to.not.exist()
     serialized = _serialized
     cb()
   })
 },
示例#3
0
          }, (err, node) => {
            expect(err).to.not.exist()
            node1b = node

            dagPB.util.cid(node, (err, cid) => {
              expect(err).to.not.exist()
              node1bCid = cid
              cb()
            })
          })
示例#4
0
    }, (err, result) => {
      if (err) {
        return callback(err)
      }

      if (Buffer.isBuffer(obj)) {
        if (!options.enc) {
          obj = { Data: obj, Links: [] }
        } else if (options.enc === 'json') {
          obj = JSON.parse(obj.toString())
        }
      }

      let node

      if (obj.multihash) {
        node = obj
      } else if (options.enc === 'protobuf') {
        dagPB.util.deserialize(obj, (err, _node) => {
          if (err) {
            return callback(err)
          }
          node = _node
          next()
        })
        return
      } else {
        DAGNode.create(Buffer.from(obj.Data), obj.Links, (err, _node) => {
          if (err) {
            return callback(err)
          }
          node = _node
          next()
        })
        return
      }
      next()

      function next () {
        const nodeJSON = node.toJSON()
        if (nodeJSON.multihash !== result.Hash) {
          const err = new Error('multihashes do not match')
          return callback(err)
        }

        cache.set(result.Hash, node)
        callback(null, node)
      }
    })
示例#5
0
        (cb) => {
          dagPB.util.cid(node2, (err, cid) => {
            expect(err).to.not.exist()

            dagPB.DAGNode.addLink(node3, {
              name: '2',
              size: node2.size,
              cid
            }, (err, node) => {
              expect(err).to.not.exist()
              node3 = node
              cb()
            })
          })
        }
示例#6
0
文件: pin.js 项目: ipfs/js-ipfs
 map(nodes, (node, cb) => util.cid(util.serialize(node), {
   cidVersion: 0
 }).then(cid => cb(null, cid), cb), (err, cids) => {
示例#7
0
文件: object.js 项目: ipfs/js-ipfs
    }).unknown()
  },

  // uses common parseKey method that returns a `key`
  parseArgs: exports.parseKey,

  // main route handler which is called after the above `parseArgs`, but only if the args were valid
  async handler (request, h) {
    const { key } = request.pre.args
    const enc = request.query.enc || 'base58'
    const { ipfs } = request.server.app

    let node, cid
    try {
      node = await ipfs.object.get(key, { enc: enc })
      cid = await dagPB.util.cid(dagPB.util.serialize(node))
    } catch (err) {
      throw Boom.boomify(err, { message: 'Failed to get object' })
    }

    const nodeJSON = node.toJSON()

    if (Buffer.isBuffer(node.data)) {
      nodeJSON.data = node.data.toString(request.query['data-encoding'] || undefined)
    }

    const answer = {
      Data: nodeJSON.data,
      Hash: cidToString(cid, { base: request.query['cid-base'], upgrade: false }),
      Size: nodeJSON.size,
      Links: nodeJSON.links.map((l) => {