[#268] client: Fix PatchPayload
method
* Make the method `PatchPayload` send a patch with empty payload patch if range's length is non-zero and if it's the first call. * Empty payload patches just cut original object payload. So, these patches are also valid. Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
This commit is contained in:
parent
7d84d104fb
commit
9ef9e51500
1 changed files with 14 additions and 0 deletions
|
@ -178,6 +178,20 @@ func (x *objectPatcher) PatchPayload(_ context.Context, rng *object.Range, paylo
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if n == 0 {
|
if n == 0 {
|
||||||
|
if rng.GetLength() != 0 && x.firstPatchPayload {
|
||||||
|
x.firstPatchPayload = false
|
||||||
|
|
||||||
|
// the empty patch just cuts `rng.GetLength()` bytes from original object payload
|
||||||
|
if !x.patch(&object.Patch{
|
||||||
|
Address: x.addr,
|
||||||
|
PayloadPatch: &object.PayloadPatch{
|
||||||
|
Range: rng,
|
||||||
|
Chunk: []byte{},
|
||||||
|
},
|
||||||
|
}) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue