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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
8 additions and
0 deletions
-
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) |
|
|
} |
|
|
} |
|
|