提交 c9446a77 作者: Łukasz Magiera

object: make objectPut return CID

License: MIT
Signed-off-by: 's avatarŁukasz Magiera <magik6k@gmail.com>
上级 e1bc025e
...@@ -393,7 +393,7 @@ And then run: ...@@ -393,7 +393,7 @@ And then run:
defer n.Blockstore.PinLock().Unlock() defer n.Blockstore.PinLock().Unlock()
} }
output, err := objectPut(n, input, inputenc, datafieldenc) objectCid, err := objectPut(n, input, inputenc, datafieldenc)
if err != nil { if err != nil {
errType := cmds.ErrNormal errType := cmds.ErrNormal
if err == ErrUnknownObjectEnc { if err == ErrUnknownObjectEnc {
...@@ -404,13 +404,7 @@ And then run: ...@@ -404,13 +404,7 @@ And then run:
} }
if dopin { if dopin {
c, err := cid.Decode(output.Hash) n.Pinning.PinWithMode(objectCid, pin.Recursive)
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
}
n.Pinning.PinWithMode(c, pin.Recursive)
err = n.Pinning.Flush() err = n.Pinning.Flush()
if err != nil { if err != nil {
res.SetError(err, cmds.ErrNormal) res.SetError(err, cmds.ErrNormal)
...@@ -418,15 +412,15 @@ And then run: ...@@ -418,15 +412,15 @@ And then run:
} }
} }
res.SetOutput(output) res.SetOutput(objectCid)
}, },
Marshalers: cmds.MarshalerMap{ Marshalers: cmds.MarshalerMap{
cmds.Text: func(res cmds.Response) (io.Reader, error) { cmds.Text: func(res cmds.Response) (io.Reader, error) {
object := res.Output().(*Object) object := res.Output().(*cid.Cid)
return strings.NewReader("added " + object.Hash + "\n"), nil return strings.NewReader("added " + object.String() + "\n"), nil
}, },
}, },
Type: Object{}, Type: cid.Cid{},
} }
var ObjectNewCmd = &cmds.Command{ var ObjectNewCmd = &cmds.Command{
...@@ -495,7 +489,7 @@ func nodeFromTemplate(template string) (*dag.ProtoNode, error) { ...@@ -495,7 +489,7 @@ func nodeFromTemplate(template string) (*dag.ProtoNode, error) {
var ErrEmptyNode = errors.New("no data or links in this node") var ErrEmptyNode = errors.New("no data or links in this node")
// objectPut takes a format option, serializes bytes from stdin and updates the dag with that data // objectPut takes a format option, serializes bytes from stdin and updates the dag with that data
func objectPut(n *core.IpfsNode, input io.Reader, encoding string, dataFieldEncoding string) (*Object, error) { func objectPut(n *core.IpfsNode, input io.Reader, encoding string, dataFieldEncoding string) (*cid.Cid, error) {
data, err := ioutil.ReadAll(io.LimitReader(input, inputLimit+10)) data, err := ioutil.ReadAll(io.LimitReader(input, inputLimit+10))
if err != nil { if err != nil {
...@@ -560,7 +554,7 @@ func objectPut(n *core.IpfsNode, input io.Reader, encoding string, dataFieldEnco ...@@ -560,7 +554,7 @@ func objectPut(n *core.IpfsNode, input io.Reader, encoding string, dataFieldEnco
return nil, err return nil, err
} }
return getOutput(dagnode) return dagnode.Cid(), nil
} }
// ErrUnknownObjectEnc is returned if a invalid encoding is supplied // ErrUnknownObjectEnc is returned if a invalid encoding is supplied
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论