forked from TrueCloudLab/frostfs-node
[#501] object/put: relay requests for signed objects
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
parent
a422f42ca9
commit
3468491224
5 changed files with 99 additions and 5 deletions
|
@ -25,6 +25,8 @@ type distributedTarget struct {
|
|||
|
||||
nodeTargetInitializer func(*network.Address) transformer.ObjectTarget
|
||||
|
||||
relay func(*network.Address) error
|
||||
|
||||
fmt *object.FormatValidator
|
||||
|
||||
log *logger.Logger
|
||||
|
@ -67,6 +69,13 @@ func (t *distributedTarget) Close() (*transformer.AccessIdentifiers, error) {
|
|||
}
|
||||
|
||||
func (t *distributedTarget) sendObject(addr *network.Address) error {
|
||||
if t.relay != nil {
|
||||
err := t.relay(addr)
|
||||
if err == nil || !errors.Is(err, errLocalAddress) {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
target := t.nodeTargetInitializer(addr)
|
||||
|
||||
if err := target.WriteHeader(t.obj); err != nil {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue