From c2ad6f104757b2d58c9a354400d4ec8bca268c3e Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Thu, 18 Feb 2021 12:15:09 -0800 Subject: [PATCH] webdav add replication setting fix https://github.com/chrislusf/seaweedfs/issues/1817 --- weed/command/filer.go | 3 ++- weed/command/server.go | 1 + weed/command/webdav.go | 3 +++ weed/server/webdav_server.go | 5 +++-- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/weed/command/filer.go b/weed/command/filer.go index 7f665cec8..f8fa57584 100644 --- a/weed/command/filer.go +++ b/weed/command/filer.go @@ -52,7 +52,7 @@ type FilerOptions struct { func init() { cmdFiler.Run = runFiler // break init cycle f.masters = cmdFiler.Flag.String("master", "localhost:9333", "comma-separated master servers") - f.collection = cmdFiler.Flag.String("collection", "", "all data will be stored in this collection") + f.collection = cmdFiler.Flag.String("collection", "", "all data will be stored in this default collection") f.ip = cmdFiler.Flag.String("ip", util.DetectedHostAddress(), "filer server http listen ip address") f.bindIp = cmdFiler.Flag.String("ip.bind", "0.0.0.0", "ip address to bind to") f.port = cmdFiler.Flag.Int("port", 8888, "filer server http listen port") @@ -83,6 +83,7 @@ func init() { filerStartWebDav = cmdFiler.Flag.Bool("webdav", false, "whether to start webdav gateway") filerWebDavOptions.port = cmdFiler.Flag.Int("webdav.port", 7333, "webdav server http listen port") filerWebDavOptions.collection = cmdFiler.Flag.String("webdav.collection", "", "collection to create the files") + filerWebDavOptions.replication = cmdFiler.Flag.String("webdav.replication", "", "replication to create the files") filerWebDavOptions.tlsPrivateKey = cmdFiler.Flag.String("webdav.key.file", "", "path to the TLS private key file") filerWebDavOptions.tlsCertificate = cmdFiler.Flag.String("webdav.cert.file", "", "path to the TLS certificate file") filerWebDavOptions.cacheDir = cmdFiler.Flag.String("webdav.cacheDir", os.TempDir(), "local cache directory for file chunks") diff --git a/weed/command/server.go b/weed/command/server.go index 61cac2cc7..f5a07e981 100644 --- a/weed/command/server.go +++ b/weed/command/server.go @@ -121,6 +121,7 @@ func init() { webdavOptions.port = cmdServer.Flag.Int("webdav.port", 7333, "webdav server http listen port") webdavOptions.collection = cmdServer.Flag.String("webdav.collection", "", "collection to create the files") + webdavOptions.replication = cmdServer.Flag.String("webdav.replication", "", "replication to create the files") webdavOptions.tlsPrivateKey = cmdServer.Flag.String("webdav.key.file", "", "path to the TLS private key file") 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") diff --git a/weed/command/webdav.go b/weed/command/webdav.go index dc84b1fd0..158ba292f 100644 --- a/weed/command/webdav.go +++ b/weed/command/webdav.go @@ -25,6 +25,7 @@ type WebDavOption struct { filer *string port *int collection *string + replication *string tlsPrivateKey *string tlsCertificate *string cacheDir *string @@ -36,6 +37,7 @@ func init() { webDavStandaloneOptions.filer = cmdWebDav.Flag.String("filer", "localhost:8888", "filer server address") webDavStandaloneOptions.port = cmdWebDav.Flag.Int("port", 7333, "webdav server http listen port") webDavStandaloneOptions.collection = cmdWebDav.Flag.String("collection", "", "collection to create the files") + webDavStandaloneOptions.replication = cmdWebDav.Flag.String("replication", "", "replication to create the files") webDavStandaloneOptions.tlsPrivateKey = cmdWebDav.Flag.String("key.file", "", "path to the TLS private key file") 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") @@ -107,6 +109,7 @@ func (wo *WebDavOption) startWebDav() bool { FilerGrpcAddress: filerGrpcAddress, GrpcDialOption: grpcDialOption, Collection: *wo.collection, + Replication: *wo.replication, Uid: uid, Gid: gid, Cipher: cipher, diff --git a/weed/server/webdav_server.go b/weed/server/webdav_server.go index 4b57c7afe..c3f68fdee 100644 --- a/weed/server/webdav_server.go +++ b/weed/server/webdav_server.go @@ -33,6 +33,7 @@ type WebDavOption struct { BucketsPath string GrpcDialOption grpc.DialOption Collection string + Replication string DiskType string Uid uint32 Gid uint32 @@ -225,7 +226,7 @@ func (fs *WebDavFileSystem) OpenFile(ctx context.Context, fullFilePath string, f Uid: fs.option.Uid, Gid: fs.option.Gid, Collection: fs.option.Collection, - Replication: "000", + Replication: fs.option.Replication, TtlSec: 0, }, }, @@ -381,7 +382,7 @@ func (f *WebDavFile) saveDataAsChunk(reader io.Reader, name string, offset int64 request := &filer_pb.AssignVolumeRequest{ Count: 1, - Replication: "", + Replication: f.fs.option.Replication, Collection: f.fs.option.Collection, DiskType: f.fs.option.DiskType, Path: name,