@cryptotaxi247 / kubo / commits / aa3e087e7

Use coreapi in ipfs get

License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>

Łukasz Magiera committed Jan 24, 2019 at 19:07 UTC aa3e087e778227a97f13830d611722d02eac8e6a
1 file changed +16 -21
core/commands/get.go
+16 -21
@@ -9,16 +9,14 @@ import (
9 "path/filepath"
10 "strings"
11
12 - core "github.com/ipfs/go-ipfs/core"
13 - cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
14 - e "github.com/ipfs/go-ipfs/core/commands/e"
12 + "github.com/ipfs/go-ipfs/core/commands/cmdenv"
13 + "github.com/ipfs/go-ipfs/core/commands/e"
14 + "github.com/ipfs/go-ipfs/core/coreapi/interface"
15
16 - tar "gx/ipfs/QmQine7gvHncNevKtG9QXxf3nXcwSj6aDDmMm52mHofEEp/tar-utils"
16 + "gx/ipfs/QmQine7gvHncNevKtG9QXxf3nXcwSj6aDDmMm52mHofEEp/tar-utils"
17 uarchive "gx/ipfs/QmSMJ4rZbCJaih3y82Ebq7BZqK6vU2FHsKcWKQiE1DPTpS/go-unixfs/archive"
18 "gx/ipfs/QmWGm4AbZEbnmdgVTza52MSNpEmBdFVqzmAysRbjrRyGbH/go-ipfs-cmds"
19 - path "gx/ipfs/QmWqh9oob7ZHQRwU5CdTqpnC8ip8BEkFNrwXRxeNo5Y7vA/go-path"
19 "gx/ipfs/QmYWB8oH6o7qftxoyqTTZhzLrhKCVT7NYahECQTwTtqbgj/pb"
21 - dag "gx/ipfs/Qmb2UEG2TAeVrEJSjqsZF7Y2he7wRDkrdt6c3bECxwZf4k/go-merkledag"
20 "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
21 )
22
@@ -66,33 +64,30 @@ may also specify the level of compression by specifying '-l=<1-9>'.
64 return err
65 }
66
69 - node, err := cmdenv.GetNode(env)
67 + api, err := cmdenv.GetApi(env, req)
68 if err != nil {
69 return err
70 }
73 - p := path.Path(req.Arguments[0])
74 - ctx := req.Context
75 - dn, err := core.Resolve(ctx, node.Namesys, node.Resolver, p)
71 +
72 + p, err := iface.ParsePath(req.Arguments[0])
73 if err != nil {
74 return err
75 }
76
80 - switch dn := dn.(type) {
81 - case *dag.ProtoNode:
82 - size, err := dn.Size()
83 - if err != nil {
84 - return err
85 - }
77 + file, err := api.Unixfs().Get(req.Context, p)
78 + if err != nil {
79 + return err
80 + }
81
87 - res.SetLength(size)
88 - case *dag.RawNode:
89 - res.SetLength(uint64(len(dn.RawData())))
90 - default:
82 + size, err := file.Size()
83 + if err != nil {
84 return err
85 }
86
87 + res.SetLength(uint64(size))
88 +
89 archive, _ := req.Options[archiveOptionName].(bool)
95 - reader, err := uarchive.DagArchive(ctx, dn, p.String(), node.DAG, archive, cmplvl)
90 + reader, err := uarchive.FileArchive(file, p.String(), archive, cmplvl)
91 if err != nil {
92 return err
93 }