aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-02-18 12:15:09 -0800
committerChris Lu <chris.lu@gmail.com>2021-02-18 12:15:09 -0800
commitc2ad6f104757b2d58c9a354400d4ec8bca268c3e (patch)
tree9fac013c2e8c22174320778d4581d051a03d59d0
parent816ef0ed302c263939ce900a01624f80dbdf17b9 (diff)
downloadseaweedfs-c2ad6f104757b2d58c9a354400d4ec8bca268c3e.tar.xz
seaweedfs-c2ad6f104757b2d58c9a354400d4ec8bca268c3e.zip
webdav add replication setting
fix https://github.com/chrislusf/seaweedfs/issues/1817
-rw-r--r--weed/command/filer.go3
-rw-r--r--weed/command/server.go1
-rw-r--r--weed/command/webdav.go3
-rw-r--r--weed/server/webdav_server.go5
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,