avoid overwriting file or directory

fix https://github.com/chrislusf/seaweedfs/issues/777
This commit is contained in:
Chris Lu 2018-11-29 00:00:56 -08:00
parent 021f5d689b
commit ceca078acb

View file

@ -132,6 +132,12 @@ func (f *Filer) CreateEntry(entry *Entry) error {
return fmt.Errorf("insert entry %s: %v", entry.FullPath, err) return fmt.Errorf("insert entry %s: %v", entry.FullPath, err)
} }
} else { } else {
if oldEntry.IsDirectory() && !entry.IsDirectory() {
return fmt.Errorf("existing %s is a directory", entry.FullPath)
}
if !oldEntry.IsDirectory() && entry.IsDirectory() {
return fmt.Errorf("existing %s is a file", entry.FullPath)
}
if err := f.store.UpdateEntry(entry); err != nil { if err := f.store.UpdateEntry(entry); err != nil {
return fmt.Errorf("update entry %s: %v", entry.FullPath, err) return fmt.Errorf("update entry %s: %v", entry.FullPath, err)
} }