diff --git a/weed/filer/read.go b/weed/filer/read.go new file mode 100644 index 000000000..13f282dc7 --- /dev/null +++ b/weed/filer/read.go @@ -0,0 +1,27 @@ +package filer + +import ( + "bytes" + "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/chrislusf/seaweedfs/weed/wdclient" + "math" +) + +func ReadEntry(masterClient *wdclient.MasterClient, filerClient filer_pb.SeaweedFilerClient, dir, name string, byteBuffer *bytes.Buffer) error { + + request := &filer_pb.LookupDirectoryEntryRequest{ + Directory: dir, + Name: name, + } + respLookupEntry, err := filer_pb.LookupEntry(filerClient, request) + if err != nil { + return err + } + if len(respLookupEntry.Entry.Content) > 0 { + _, err = byteBuffer.Write(respLookupEntry.Entry.Content) + return err + } + + return StreamContent(masterClient, byteBuffer, respLookupEntry.Entry.Chunks, 0, math.MaxInt64) + +} diff --git a/weed/pb/filer_pb/filer_pb_helper.go b/weed/pb/filer_pb/filer_pb_helper.go index 76a8c973e..b46385c8f 100644 --- a/weed/pb/filer_pb/filer_pb_helper.go +++ b/weed/pb/filer_pb/filer_pb_helper.go @@ -1,13 +1,9 @@ package filer_pb import ( - "bytes" "context" "errors" "fmt" - "github.com/chrislusf/seaweedfs/weed/filer" - "github.com/chrislusf/seaweedfs/weed/wdclient" - "math" "strings" "github.com/chrislusf/seaweedfs/weed/glog" @@ -126,25 +122,6 @@ func LookupEntry(client SeaweedFilerClient, request *LookupDirectoryEntryRequest return resp, nil } -func ReadEntry(masterClient *wdclient.MasterClient, filerClient SeaweedFilerClient, dir, name string, byteBuffer *bytes.Buffer) error { - - request := &LookupDirectoryEntryRequest{ - Directory: filer.DirectoryEtc, - Name: filer.FilerConfName, - } - respLookupEntry, err := LookupEntry(filerClient, request) - if err != nil { - return err - } - if len(respLookupEntry.Entry.Content) > 0 { - _, err = byteBuffer.Write(respLookupEntry.Entry.Content) - return err - } - - return filer.StreamContent(masterClient, byteBuffer, respLookupEntry.Entry.Chunks, 0, math.MaxInt64) - -} - var ErrNotFound = errors.New("filer: no entry is found in filer store") func IsCreate(event *SubscribeMetadataResponse) bool { diff --git a/weed/shell/command_fs_configure.go b/weed/shell/command_fs_configure.go index f388c9603..b67a6e672 100644 --- a/weed/shell/command_fs_configure.go +++ b/weed/shell/command_fs_configure.go @@ -64,7 +64,7 @@ func (c *commandFsConfigure) Do(args []string, commandEnv *CommandEnv, writer io var buf bytes.Buffer if err = commandEnv.WithFilerClient(func(client filer_pb.SeaweedFilerClient) error { - return filer_pb.ReadEntry(commandEnv.MasterClient, client, filer.DirectoryEtc, filer.FilerConfName, &buf) + return filer.ReadEntry(commandEnv.MasterClient, client, filer.DirectoryEtc, filer.FilerConfName, &buf) }); err != nil && err != filer_pb.ErrNotFound { return err }