[#653] Support removal old combined objects

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
This commit is contained in:
Denis Kirillov 2025-03-26 09:55:46 +03:00
parent 4a430257a4
commit 396c89f7bc
8 changed files with 88 additions and 28 deletions

View file

@ -493,6 +493,33 @@ func TestRemovalOnReplace(t *testing.T) {
require.Len(t, hc.MockedPool().AllObjects(bktInfo.CID), 2)
}
func TestRemovalOnReplaceMultipart(t *testing.T) {
hc := prepareHandlerContext(t)
bktName, objName := "bucket", "object"
bktInfo := createTestBucket(hc, bktName)
multipartUpload(hc, bktName, objName, nil, 10, 10)
require.Len(t, hc.MockedPool().AllObjects(bktInfo.CID), 2)
multipartUpload(hc, bktName, objName, nil, 10, 10)
require.Len(t, hc.MockedPool().AllObjects(bktInfo.CID), 4)
hc.layerFeatures.SetRemoveOnReplace(true)
multipartUpload(hc, bktName, objName, nil, 10, 10)
time.Sleep(time.Second)
require.Len(t, hc.MockedPool().AllObjects(bktInfo.CID), 4)
putObject(hc, bktName, objName)
time.Sleep(time.Second)
require.Len(t, hc.MockedPool().AllObjects(bktInfo.CID), 3)
multipartUpload(hc, bktName, objName, nil, 10, 10)
time.Sleep(time.Second)
require.Len(t, hc.MockedPool().AllObjects(bktInfo.CID), 4)
}
func createBucketAndObject(tc *handlerContext, bktName, objName string) (*data.BucketInfo, *data.ObjectInfo) {
bktInfo := createTestBucket(tc, bktName)