aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed-fs/src/pkg/storage/needle.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/weed-fs/src/pkg/storage/needle.go b/weed-fs/src/pkg/storage/needle.go
index a7ae80857..8d2ad9f60 100644
--- a/weed-fs/src/pkg/storage/needle.go
+++ b/weed-fs/src/pkg/storage/needle.go
@@ -8,6 +8,7 @@ import (
"net/http"
"os"
"pkg/util"
+ "strconv"
"strings"
)
@@ -30,6 +31,7 @@ func NewNeedle(r *http.Request) (n *Needle, e error) {
return
}
part, _ := form.NextPart()
+ log.Println("uploading file " + part.FileName())
data, _ := ioutil.ReadAll(part)
n.Data = data
@@ -52,7 +54,18 @@ func (n *Needle) ParsePath(fid string) {
}
return
}
+ delta := ""
+ deltaIndex := strings.LastIndex(fid, "_")
+ if deltaIndex > 0 {
+ fid, delta = fid[0:deltaIndex], fid[deltaIndex+1:]
+ }
n.Key, n.Cookie = ParseKeyHash(fid)
+ if delta != "" {
+ d, e := strconv.ParseUint(delta, 10, 64)
+ if e == nil {
+ n.Key += d
+ }
+ }
}
func (n *Needle) Append(w io.Writer) uint32 {
header := make([]byte, 16)