From 3b62b338a5532639fa34cd2a56101ea5507f6eb3 Mon Sep 17 00:00:00 2001 From: Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> Date: Sat, 6 Jan 2024 00:10:20 +0500 Subject: [PATCH] chore: add maxMB option for webdav (#5165) --- weed/command/server.go | 1 + weed/command/webdav.go | 3 +++ weed/server/webdav_server.go | 5 +++-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/weed/command/server.go b/weed/command/server.go index 9631f6bfd..b8ef25fad 100644 --- a/weed/command/server.go +++ b/weed/command/server.go @@ -164,6 +164,7 @@ func init() { webdavOptions.tlsCertificate = cmdServer.Flag.String("webdav.cert.file", "", "path to the TLS certificate file") webdavOptions.cacheDir = cmdServer.Flag.String("webdav.cacheDir", os.TempDir(), "local cache directory for file chunks") webdavOptions.cacheSizeMB = cmdServer.Flag.Int64("webdav.cacheCapacityMB", 0, "local cache capacity in MB") + webdavOptions.maxMB = cmdServer.Flag.Int("webdav.maxMB", 4, "split files larger than the limit") webdavOptions.filerRootPath = cmdServer.Flag.String("webdav.filer.path", "/", "use this remote path from filer server") mqBrokerOptions.port = cmdServer.Flag.Int("mq.broker.port", 17777, "message queue broker gRPC listen port") diff --git a/weed/command/webdav.go b/weed/command/webdav.go index 67e6ce69c..f0e738f4a 100644 --- a/weed/command/webdav.go +++ b/weed/command/webdav.go @@ -32,6 +32,7 @@ type WebDavOption struct { tlsCertificate *string cacheDir *string cacheSizeMB *int64 + maxMB *int } func init() { @@ -45,6 +46,7 @@ func init() { webDavStandaloneOptions.tlsCertificate = cmdWebDav.Flag.String("cert.file", "", "path to the TLS certificate file") webDavStandaloneOptions.cacheDir = cmdWebDav.Flag.String("cacheDir", os.TempDir(), "local cache directory for file chunks") webDavStandaloneOptions.cacheSizeMB = cmdWebDav.Flag.Int64("cacheCapacityMB", 0, "local cache capacity in MB") + webDavStandaloneOptions.maxMB = cmdWebDav.Flag.Int("maxMB", 4, "split files larger than the limit") webDavStandaloneOptions.filerRootPath = cmdWebDav.Flag.String("filer.path", "/", "use this remote path from filer server") } @@ -116,6 +118,7 @@ func (wo *WebDavOption) startWebDav() bool { Cipher: cipher, CacheDir: util.ResolvePath(*wo.cacheDir), CacheSizeMB: *wo.cacheSizeMB, + MaxMB: *wo.maxMB, }) if webdavServer_err != nil { glog.Fatalf("WebDav Server startup error: %v", webdavServer_err) diff --git a/weed/server/webdav_server.go b/weed/server/webdav_server.go index c4b1a1c03..97d51dad7 100644 --- a/weed/server/webdav_server.go +++ b/weed/server/webdav_server.go @@ -38,6 +38,7 @@ type WebDavOption struct { Cipher bool CacheDir string CacheSizeMB int64 + MaxMB int } type WebDavServer struct { @@ -262,7 +263,7 @@ func (fs *WebDavFileSystem) OpenFile(ctx context.Context, fullFilePath string, f fs: fs, name: fullFilePath, isDirectory: false, - bufWriter: buffered_writer.NewBufferedWriteCloser(4 * 1024 * 1024), + bufWriter: buffered_writer.NewBufferedWriteCloser(fs.option.MaxMB * 1024 * 1024), }, nil } @@ -278,7 +279,7 @@ func (fs *WebDavFileSystem) OpenFile(ctx context.Context, fullFilePath string, f fs: fs, name: fullFilePath, isDirectory: false, - bufWriter: buffered_writer.NewBufferedWriteCloser(4 * 1024 * 1024), + bufWriter: buffered_writer.NewBufferedWriteCloser(fs.option.MaxMB * 1024 * 1024), }, nil }