提交 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) {
return nil, err
}
// TODO: 'resolve to block' method
nd, err := n.Resolver.ResolvePath(req.Context(), pth)
tpath, last, err := pth.PopLastSegment()
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 {
return nil, err
}
b, err := n.Blocks.GetBlock(req.Context(), nd.Cid())
b, err := n.Blocks.GetBlock(req.Context(), lnk.Cid)
if err != nil {
return nil, err
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论