[#193] getsvc: Reduce private key requests

Get private key only once for request forwaring.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
Dmitrii Stepanov 2023-04-04 13:20:57 +03:00 committed by Gitea
parent 89924071cd
commit c58ab0c369
4 changed files with 29 additions and 25 deletions

View file

@ -56,11 +56,16 @@ func (s *Service) toPrm(req *objectV2.GetRequest, stream objectSvc.GetObjectStre
p.SetObjectWriter(streamWrapper)
if !commonPrm.LocalOnly() {
key, err := s.keyStorage.GetKey(nil)
if err != nil {
return nil, err
}
forwarder := &getRequestForwarder{
OnceResign: &sync.Once{},
OnceHeaderSending: &sync.Once{},
GlobalProgress: 0,
KeyStorage: s.keyStorage,
Key: key,
Request: req,
Stream: streamWrapper,
}
@ -107,10 +112,15 @@ func (s *Service) toRangePrm(req *objectV2.GetRangeRequest, stream objectSvc.Get
}
if !commonPrm.LocalOnly() {
key, err := s.keyStorage.GetKey(nil)
if err != nil {
return nil, err
}
forwarder := &getRangeRequestForwarder{
OnceResign: &sync.Once{},
GlobalProgress: 0,
KeyStorage: s.keyStorage,
Key: key,
Request: req,
Stream: streamWrapper,
}
@ -239,12 +249,17 @@ func (s *Service) toHeadPrm(ctx context.Context, req *objectV2.HeadRequest, resp
return p, nil
}
key, err := s.keyStorage.GetKey(nil)
if err != nil {
return nil, err
}
forwarder := &headRequestForwarder{
Request: req,
Response: resp,
OnceResign: &sync.Once{},
ObjectAddr: objAddr,
KeyStorage: s.keyStorage,
Key: key,
}
p.SetRequestForwarder(groupAddressRequestForwarder(forwarder.forwardRequestToNode))