aboutsummaryrefslogtreecommitdiff
path: root/weed/server/webdav_server.go
diff options
context:
space:
mode:
authorxdadrm <xdadrm@users.noreply.github.com>2022-06-27 20:19:21 +0200
committerGitHub <noreply@github.com>2022-06-27 20:19:21 +0200
commit3a42269da888ccef8e15834684730450d8ed7a66 (patch)
tree440975208db8715205f2aa1a2e694839bdbb796a /weed/server/webdav_server.go
parent4be406a0950c5b9fc31f1fe499b0a8fb07d6d16b (diff)
downloadseaweedfs-3a42269da888ccef8e15834684730450d8ed7a66.tar.xz
seaweedfs-3a42269da888ccef8e15834684730450d8ed7a66.zip
Fixes WebDAV 0-bytes files
Fixes the issue where files created via WebDAV show as 0-bytes size when read via fuse.
Diffstat (limited to 'weed/server/webdav_server.go')
-rw-r--r--weed/server/webdav_server.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/weed/server/webdav_server.go b/weed/server/webdav_server.go
index 265dea03a..5140af2b4 100644
--- a/weed/server/webdav_server.go
+++ b/weed/server/webdav_server.go
@@ -48,6 +48,13 @@ type WebDavServer struct {
Handler *webdav.Handler
}
+func max(x, y int64) int64 {
+ if x <= y {
+ return y
+ }
+ return x
+}
+
func NewWebDavServer(option *WebDavOption) (ws *WebDavServer, err error) {
fs, _ := NewWebDavFileSystem(option)
@@ -496,6 +503,7 @@ func (f *WebDavFile) Write(buf []byte) (int, error) {
written, err := f.bufWriter.Write(buf)
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)))
f.off += int64(written)
}