diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-05-21 01:28:00 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-05-21 01:28:00 -0700 |
| commit | dc1309f084bf9f420629bdf5c2cbe88c07400930 (patch) | |
| tree | cbdcc53ffd2e8b1ddfe3e62c21c8dc94bb472f28 /weed/filesys/wfs.go | |
| parent | 30c67e3652f0a04c77593849004cd6a138451263 (diff) | |
| download | seaweedfs-dc1309f084bf9f420629bdf5c2cbe88c07400930.tar.xz seaweedfs-dc1309f084bf9f420629bdf5c2cbe88c07400930.zip | |
FUSE mount: support multiple filers
fix https://github.com/chrislusf/seaweedfs/issues/2015
fix https://github.com/chrislusf/seaweedfs/issues/1531
Diffstat (limited to 'weed/filesys/wfs.go')
| -rw-r--r-- | weed/filesys/wfs.go | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/weed/filesys/wfs.go b/weed/filesys/wfs.go index 4096d3595..b634420d6 100644 --- a/weed/filesys/wfs.go +++ b/weed/filesys/wfs.go @@ -28,8 +28,9 @@ import ( type Option struct { MountDirectory string - FilerAddress string - FilerGrpcAddress string + FilerAddresses []string + filerIndex int + FilerGrpcAddresses []string GrpcDialOption grpc.DialOption FilerMountRootPath string Collection string @@ -95,7 +96,7 @@ func NewSeaweedFileSystem(option *Option) *WFS { }, signature: util.RandomInt32(), } - cacheUniqueId := util.Md5String([]byte(option.MountDirectory + option.FilerGrpcAddress + option.FilerMountRootPath + util.Version()))[0:8] + cacheUniqueId := util.Md5String([]byte(option.MountDirectory + option.FilerGrpcAddresses[0] + option.FilerMountRootPath + util.Version()))[0:8] cacheDir := path.Join(option.CacheDir, cacheUniqueId) if option.CacheSizeMB > 0 { os.MkdirAll(cacheDir, os.FileMode(0777)&^option.Umask) @@ -259,11 +260,13 @@ func (wfs *WFS) mapPbIdFromLocalToFiler(entry *filer_pb.Entry) { func (wfs *WFS) LookupFn() wdclient.LookupFileIdFunctionType { if wfs.option.VolumeServerAccess == "filerProxy" { return func(fileId string) (targetUrls []string, err error) { - return []string{"http://" + wfs.option.FilerAddress + "/?proxyChunkId=" + fileId}, nil + return []string{"http://" + wfs.getCurrentFiler() + "/?proxyChunkId=" + fileId}, nil } } return filer.LookupFn(wfs) - +} +func (wfs *WFS) getCurrentFiler() string { + return wfs.option.FilerAddresses[wfs.option.filerIndex] } type NodeWithId uint64 |
