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
}