mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-20 10:42:11 +08:00
don't readd entire directories recursively
This commit is contained in:
@ -232,15 +232,6 @@ func add(n *core.IpfsNode, readers []io.Reader) ([]*dag.Node, error) {
|
|||||||
return dagnodes, nil
|
return dagnodes, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func addNode(n *core.IpfsNode, node *dag.Node) error {
|
|
||||||
err := n.DAG.AddRecursive(node) // add the file to the graph + local storage
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func addFile(n *core.IpfsNode, file files.File, out chan interface{}, progress bool, wrap bool) (*dag.Node, error) {
|
func addFile(n *core.IpfsNode, file files.File, out chan interface{}, progress bool, wrap bool) (*dag.Node, error) {
|
||||||
if file.IsDirectory() {
|
if file.IsDirectory() {
|
||||||
return addDir(n, file, out, progress)
|
return addDir(n, file, out, progress)
|
||||||
@ -309,7 +300,7 @@ func addDir(n *core.IpfsNode, dir files.File, out chan interface{}, progress boo
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = addNode(n, tree)
|
_, err = n.DAG.Add(tree)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -384,13 +384,8 @@ 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) (*Object, error) {
|
func objectPut(n *core.IpfsNode, input io.Reader, encoding string) (*Object, error) {
|
||||||
var (
|
|
||||||
dagnode *dag.Node
|
|
||||||
data []byte
|
|
||||||
err 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 {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -399,6 +394,7 @@ func objectPut(n *core.IpfsNode, input io.Reader, encoding string) (*Object, err
|
|||||||
return nil, ErrObjectTooLarge
|
return nil, ErrObjectTooLarge
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var dagnode *dag.Node
|
||||||
switch getObjectEnc(encoding) {
|
switch getObjectEnc(encoding) {
|
||||||
case objectEncodingJSON:
|
case objectEncodingJSON:
|
||||||
node := new(Node)
|
node := new(Node)
|
||||||
@ -429,7 +425,7 @@ func objectPut(n *core.IpfsNode, input io.Reader, encoding string) (*Object, err
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = addNode(n, dagnode)
|
_, err = n.DAG.Add(dagnode)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user