forked from TrueCloudLab/frostfs-s3-gw
[#420] Using tree service to list object versions
Signed-off-by: Denis Kirillov <denis@nspcc.ru>
This commit is contained in:
parent
55c38e73e6
commit
9c74cca9af
11 changed files with 374 additions and 135 deletions
|
@ -8,6 +8,7 @@ import (
|
|||
"io"
|
||||
"net/url"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/nats-io/nats.go"
|
||||
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
|
||||
|
@ -562,12 +563,16 @@ func (n *layer) deleteObject(ctx context.Context, bkt *data.BucketInfo, settings
|
|||
}
|
||||
|
||||
obj.DeleteMarkVersion = unversionedObjectVersionID
|
||||
newVersion := &NodeVersion{
|
||||
BaseNodeVersion: BaseNodeVersion{
|
||||
newVersion := &data.NodeVersion{
|
||||
BaseNodeVersion: data.BaseNodeVersion{
|
||||
OID: *randOID,
|
||||
},
|
||||
IsDeleteMarker: true,
|
||||
IsUnversioned: true,
|
||||
DeleteMarker: &data.DeleteMarkerInfo{
|
||||
FilePath: obj.Name,
|
||||
Created: time.Now(),
|
||||
Owner: n.Owner(ctx),
|
||||
},
|
||||
IsUnversioned: true,
|
||||
}
|
||||
|
||||
if len(obj.VersionID) == 0 && settings.VersioningEnabled {
|
||||
|
@ -595,14 +600,14 @@ func (n *layer) deleteObject(ctx context.Context, bkt *data.BucketInfo, settings
|
|||
return obj
|
||||
}
|
||||
|
||||
func (n *layer) removeVersionIfFound(ctx context.Context, bkt *data.BucketInfo, versions []*NodeVersion, obj *VersionedObject) (string, error) {
|
||||
func (n *layer) removeVersionIfFound(ctx context.Context, bkt *data.BucketInfo, versions []*data.NodeVersion, obj *VersionedObject) (string, error) {
|
||||
for _, version := range versions {
|
||||
if version.OID.EncodeToString() != obj.VersionID {
|
||||
continue
|
||||
}
|
||||
|
||||
var deleteMarkVersion string
|
||||
if version.IsDeleteMarker {
|
||||
if version.DeleteMarker != nil {
|
||||
deleteMarkVersion = obj.VersionID
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue