diff --git a/weed/server/filer_server_handlers_write.go b/weed/server/filer_server_handlers_write.go index 188696213..b446704f2 100644 --- a/weed/server/filer_server_handlers_write.go +++ b/weed/server/filer_server_handlers_write.go @@ -139,6 +139,14 @@ func (fs *FilerServer) PostHandler(w http.ResponseWriter, r *http.Request) { return } } + + // also delete the old fid unless PUT operation + if r.Method != "PUT" { + if oldFid, err := fs.filer.FindFile(path); err == nil { + operation.DeleteFile(fs.master, oldFid, fs.jwt(oldFid)) + } + } + glog.V(4).Infoln("saving", path, "=>", fileId) if db_err := fs.filer.CreateFile(path, fileId); db_err != nil { operation.DeleteFile(fs.master, fileId, fs.jwt(fileId)) //clean up