[#641] Remove old CORS versions after putting new one

Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
This commit is contained in:
Marina Biryukova 2025-03-17 17:41:07 +03:00 committed by Alexey Vanin
parent c0c4bdb366
commit 01d95d8cf4
3 changed files with 39 additions and 30 deletions

View file

@ -45,6 +45,11 @@ func (n *Layer) PutBucketCORS(ctx context.Context, p *PutCORSParams) error {
return err
}
corsVersions, err := n.getCORSVersions(ctx, p.BktInfo)
if err != nil {
n.reqLogger(ctx).Error(logs.CouldntGetCORSObjectVersions, zap.Error(err), logs.TagField(logs.TagExternalStorage))
}
prm := frostfs.PrmObjectCreate{
Container: n.corsCnrInfo.CID,
Payload: &buf,
@ -56,7 +61,7 @@ func (n *Layer) PutBucketCORS(ctx context.Context, p *PutCORSParams) error {
},
}
_, err := n.objectPutAndHash(ctx, prm, n.corsCnrInfo)
_, err = n.objectPutAndHash(ctx, prm, n.corsCnrInfo)
if err != nil {
return fmt.Errorf("put cors object: %w", err)
}
@ -76,6 +81,15 @@ func (n *Layer) PutBucketCORS(ctx context.Context, p *PutCORSParams) error {
}
}
if corsVersions != nil {
var addr oid.Address
addr.SetContainer(n.corsCnrInfo.CID)
for _, obj := range corsVersions.GetObjects() {
addr.SetObject(obj.ObjID)
n.deleteCORSObject(ctx, p.BktInfo, addr)
}
}
return nil
}