mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
![Chris Lu](/assets/img/avatar_default.png)
Running mount outside of the cluster would not need to expose all the volume servers to outside of the cluster. The chunk read and write will go through the filer.
28 lines
667 B
Go
28 lines
667 B
Go
package filesys
|
|
|
|
import (
|
|
"github.com/chrislusf/seaweedfs/weed/util"
|
|
"google.golang.org/grpc"
|
|
|
|
"github.com/chrislusf/seaweedfs/weed/pb"
|
|
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
|
|
)
|
|
|
|
var _ = filer_pb.FilerClient(&WFS{})
|
|
|
|
func (wfs *WFS) WithFilerClient(fn func(filer_pb.SeaweedFilerClient) error) error {
|
|
|
|
err := util.Retry("filer grpc "+wfs.option.FilerGrpcAddress, func() error {
|
|
return pb.WithCachedGrpcClient(func(grpcConnection *grpc.ClientConn) error {
|
|
client := filer_pb.NewSeaweedFilerClient(grpcConnection)
|
|
return fn(client)
|
|
}, wfs.option.FilerGrpcAddress, wfs.option.GrpcDialOption)
|
|
})
|
|
|
|
if err == nil {
|
|
return nil
|
|
}
|
|
return err
|
|
|
|
}
|