@cryptotaxi247 / kubo / commits / 62333521c

core/coreunix: Created 'AddWrapped' function to add files with a wrapped directory (to preserve filename in path)

Matt Bell committed Jan 31, 2015 at 19:05 UTC 62333521c6aa451666758c587ae228a2ac5dd0cb
1 file changed +17
core/coreunix/add.go
+17
@@ -3,6 +3,7 @@ package coreunix
3 import (
4 "errors"
5 "io"
6 + "io/ioutil"
7 "os"
8 gopath "path"
9
@@ -64,6 +65,22 @@ func AddR(n *core.IpfsNode, root string) (key string, err error) {
65 return k.String(), nil
66 }
67
68 +// AddWrapped adds data from a reader, and wraps it with a directory object
69 +// to preserve the filename.
70 +func AddWrapped(n *core.IpfsNode, r io.Reader, filename string) (string, *merkledag.Node, error) {
71 + file := files.NewReaderFile(filename, ioutil.NopCloser(r), nil)
72 + dir := files.NewSliceFile("", []files.File{file})
73 + dagnode, err := addDir(n, dir)
74 + if err != nil {
75 + return "", nil, err
76 + }
77 + k, err := dagnode.Key()
78 + if err != nil {
79 + return "", nil, err
80 + }
81 + return gopath.Join(k.String(), filename), dagnode, nil
82 +}
83 +
84 func add(n *core.IpfsNode, readers []io.Reader) ([]*merkledag.Node, error) {
85 mp, ok := n.Pinning.(pin.ManualPinner)
86 if !ok {