From a8c58c9ad433fa92608663a6242e17b70034517b Mon Sep 17 00:00:00 2001 From: Shelikhoo Date: Sun, 5 Sep 2021 15:55:55 +0100 Subject: [PATCH] skip file content reading if unnecessary --- common/protofilter/filter.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/common/protofilter/filter.go b/common/protofilter/filter.go index ab8a99f3e..6eaa16d57 100644 --- a/common/protofilter/filter.go +++ b/common/protofilter/filter.go @@ -64,6 +64,15 @@ func filterMessage(ctx context.Context, message protoreflect.Message) error { fsenvironment := envctx.EnvironmentFromContext(ctx) fsifce := fsenvironment.(filesystemcap.FileSystemCapabilitySet) for _, v := range fileReadingQueue { + field := message.Descriptor().Fields().ByTextName(v.field) + if v.filename == "" { + continue + } + + if len(message.Get(field).Bytes()) > 0 { + continue + } + file, err := fsifce.OpenFileForRead()(v.filename) if err != nil { return newError("unable to open file").Base(err) @@ -73,7 +82,6 @@ func filterMessage(ctx context.Context, message protoreflect.Message) error { return newError("unable to read file").Base(err) } file.Close() - field := message.Descriptor().Fields().ByTextName(v.field) message.Set(field, protoreflect.ValueOf(fileContent)) } return nil