Browse Source

Fixes WebDAV 0-bytes files

Fixes the issue where files created via WebDAV show as 0-bytes size when read via fuse.
pull/3250/head
xdadrm 3 years ago
committed by GitHub
parent
commit
3a42269da8
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      weed/server/webdav_server.go

8
weed/server/webdav_server.go

@ -48,6 +48,13 @@ type WebDavServer struct {
Handler *webdav.Handler Handler *webdav.Handler
} }
func max(x, y int64) int64 {
if x <= y {
return y
}
return x
}
func NewWebDavServer(option *WebDavOption) (ws *WebDavServer, err error) { func NewWebDavServer(option *WebDavOption) (ws *WebDavServer, err error) {
fs, _ := NewWebDavFileSystem(option) fs, _ := NewWebDavFileSystem(option)
@ -496,6 +503,7 @@ func (f *WebDavFile) Write(buf []byte) (int, error) {
written, err := f.bufWriter.Write(buf) written, err := f.bufWriter.Write(buf)
if err == nil { if err == nil {
f.entry.Attributes.FileSize = uint64(max(f.off+int64(written), int64(f.entry.Attributes.FileSize)))
glog.V(3).Infof("WebDavFileSystem.Write %v: written [%d,%d)", f.name, f.off, f.off+int64(len(buf))) glog.V(3).Infof("WebDavFileSystem.Write %v: written [%d,%d)", f.name, f.off, f.off+int64(len(buf)))
f.off += int64(written) f.off += int64(written)
} }

Loading…
Cancel
Save