mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
add -filer.path to webdav command (#4061)
This commit is contained in:
parent
f84c13dabd
commit
038bab3726
|
@ -13,7 +13,7 @@ import (
|
||||||
"github.com/seaweedfs/seaweedfs/weed/pb"
|
"github.com/seaweedfs/seaweedfs/weed/pb"
|
||||||
"github.com/seaweedfs/seaweedfs/weed/pb/filer_pb"
|
"github.com/seaweedfs/seaweedfs/weed/pb/filer_pb"
|
||||||
"github.com/seaweedfs/seaweedfs/weed/security"
|
"github.com/seaweedfs/seaweedfs/weed/security"
|
||||||
"github.com/seaweedfs/seaweedfs/weed/server"
|
weed_server "github.com/seaweedfs/seaweedfs/weed/server"
|
||||||
"github.com/seaweedfs/seaweedfs/weed/util"
|
"github.com/seaweedfs/seaweedfs/weed/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ var (
|
||||||
|
|
||||||
type WebDavOption struct {
|
type WebDavOption struct {
|
||||||
filer *string
|
filer *string
|
||||||
|
filerRootPath *string
|
||||||
port *int
|
port *int
|
||||||
collection *string
|
collection *string
|
||||||
replication *string
|
replication *string
|
||||||
|
@ -44,6 +45,7 @@ func init() {
|
||||||
webDavStandaloneOptions.tlsCertificate = cmdWebDav.Flag.String("cert.file", "", "path to the TLS certificate 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")
|
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.cacheSizeMB = cmdWebDav.Flag.Int64("cacheCapacityMB", 0, "local cache capacity in MB")
|
||||||
|
webDavStandaloneOptions.filerRootPath = cmdWebDav.Flag.String("filer.path", "/", "use this remote path from filer server")
|
||||||
}
|
}
|
||||||
|
|
||||||
var cmdWebDav = &Command{
|
var cmdWebDav = &Command{
|
||||||
|
@ -104,6 +106,7 @@ func (wo *WebDavOption) startWebDav() bool {
|
||||||
|
|
||||||
ws, webdavServer_err := weed_server.NewWebDavServer(&weed_server.WebDavOption{
|
ws, webdavServer_err := weed_server.NewWebDavServer(&weed_server.WebDavOption{
|
||||||
Filer: filerAddress,
|
Filer: filerAddress,
|
||||||
|
FilerRootPath: *wo.filerRootPath,
|
||||||
GrpcDialOption: grpcDialOption,
|
GrpcDialOption: grpcDialOption,
|
||||||
Collection: *wo.collection,
|
Collection: *wo.collection,
|
||||||
Replication: *wo.replication,
|
Replication: *wo.replication,
|
||||||
|
|
|
@ -26,6 +26,7 @@ import (
|
||||||
|
|
||||||
type WebDavOption struct {
|
type WebDavOption struct {
|
||||||
Filer pb.ServerAddress
|
Filer pb.ServerAddress
|
||||||
|
FilerRootPath string
|
||||||
DomainName string
|
DomainName string
|
||||||
BucketsPath string
|
BucketsPath string
|
||||||
GrpcDialOption grpc.DialOption
|
GrpcDialOption grpc.DialOption
|
||||||
|
@ -58,6 +59,11 @@ func NewWebDavServer(option *WebDavOption) (ws *WebDavServer, err error) {
|
||||||
|
|
||||||
fs, _ := NewWebDavFileSystem(option)
|
fs, _ := NewWebDavFileSystem(option)
|
||||||
|
|
||||||
|
// Fix no set filer.path , accessing "/" returns "//"
|
||||||
|
if option.FilerRootPath == "/" {
|
||||||
|
option.FilerRootPath = ""
|
||||||
|
}
|
||||||
|
|
||||||
ws = &WebDavServer{
|
ws = &WebDavServer{
|
||||||
option: option,
|
option: option,
|
||||||
grpcDialOption: security.LoadClientTLS(util.GetViper(), "grpc.filer"),
|
grpcDialOption: security.LoadClientTLS(util.GetViper(), "grpc.filer"),
|
||||||
|
@ -195,7 +201,8 @@ func (fs *WebDavFileSystem) Mkdir(ctx context.Context, fullDirPath string, perm
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fs *WebDavFileSystem) OpenFile(ctx context.Context, fullFilePath string, flag int, perm os.FileMode) (webdav.File, error) {
|
func (fs *WebDavFileSystem) OpenFile(ctx context.Context, fullFilePath string, flag int, perm os.FileMode) (webdav.File, error) {
|
||||||
|
// Add filer.path
|
||||||
|
fullFilePath = fs.option.FilerRootPath + fullFilePath
|
||||||
glog.V(2).Infof("WebDavFileSystem.OpenFile %v %x", fullFilePath, flag)
|
glog.V(2).Infof("WebDavFileSystem.OpenFile %v %x", fullFilePath, flag)
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
@ -367,7 +374,8 @@ func (fs *WebDavFileSystem) stat(ctx context.Context, fullFilePath string) (os.F
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fs *WebDavFileSystem) Stat(ctx context.Context, name string) (os.FileInfo, error) {
|
func (fs *WebDavFileSystem) Stat(ctx context.Context, name string) (os.FileInfo, error) {
|
||||||
|
// Add filer.path
|
||||||
|
name = fs.option.FilerRootPath + name
|
||||||
glog.V(2).Infof("WebDavFileSystem.Stat %v", name)
|
glog.V(2).Infof("WebDavFileSystem.Stat %v", name)
|
||||||
|
|
||||||
return fs.stat(ctx, name)
|
return fs.stat(ctx, name)
|
||||||
|
|
Loading…
Reference in a new issue