提交 0714a116 作者: Jeromy

Don't unmarshal final item in 'block get' calls

License: MIT
Signed-off-by: 's avatarJeromy <jeromyj@gmail.com>
上级 d6f4ef62
...@@ -228,13 +228,29 @@ func getBlockForKey(req cmds.Request, p string) (blocks.Block, error) { ...@@ -228,13 +228,29 @@ func getBlockForKey(req cmds.Request, p string) (blocks.Block, error) {
return nil, err return nil, err
} }
// TODO: 'resolve to block' method tpath, last, err := pth.PopLastSegment()
nd, err := n.Resolver.ResolvePath(req.Context(), pth) if err != nil {
return nil, err
}
if last == "" {
root, err := cid.Parse(tpath.String())
if err != nil {
return nil, err
}
return n.Blocks.GetBlock(req.Context(), root)
}
nd, err := n.Resolver.ResolvePath(req.Context(), tpath)
if err != nil {
return nil, err
}
lnk, _, err := nd.ResolveLink([]string{last})
if err != nil { if err != nil {
return nil, err return nil, err
} }
b, err := n.Blocks.GetBlock(req.Context(), nd.Cid()) b, err := n.Blocks.GetBlock(req.Context(), lnk.Cid)
if err != nil { if err != nil {
return nil, err return nil, err
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论