Skip to content

Commit

Permalink
[nspcc-dev#112] api: refactor allObjectsParams struct
Browse files Browse the repository at this point in the history
Replaced Bucket (means name) by BucketInfo struct

Signed-off-by: Angira Kekteeva <kira@nspcc.ru>
  • Loading branch information
masterSplinter01 committed Jul 26, 2021
1 parent 57e2b70 commit 5c02c42
Showing 1 changed file with 16 additions and 9 deletions.
25 changes: 16 additions & 9 deletions api/layer/object.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ type (
}

allObjectParams struct {
Bucket string
Bucket *BucketInfo
Delimiter string
Prefix string
StartAfter string
Expand Down Expand Up @@ -205,14 +205,19 @@ func (n *layer) ListObjectsV1(ctx context.Context, p *ListObjectsParamsV1) (*Lis
var (
err error
result ListObjectsInfoV1
bkt *BucketInfo
)

if p.MaxKeys == 0 {
return &result, nil
}

if bkt, err = n.GetBucketInfo(ctx, p.Bucket); err != nil {
return nil, err
}

allObjects, err := n.listSortedAllObjects(ctx, allObjectParams{
Bucket: p.Bucket,
Bucket: bkt,
Prefix: p.Prefix,
Delimiter: p.Delimiter,
StartAfter: p.Marker,
Expand Down Expand Up @@ -247,17 +252,22 @@ func (n *layer) ListObjectsV2(ctx context.Context, p *ListObjectsParamsV2) (*Lis
err error
result ListObjectsInfoV2
allObjects []*ObjectInfo
bkt *BucketInfo
)

if p.MaxKeys == 0 {
return &result, nil
}

if bkt, err = n.GetBucketInfo(ctx, p.Bucket); err != nil {
return nil, err
}

if p.ContinuationToken != "" {
// find cache with continuation token
} else {
allObjects, err = n.listSortedAllObjects(ctx, allObjectParams{
Bucket: p.Bucket,
Bucket: bkt,
Prefix: p.Prefix,
Delimiter: p.Delimiter,
StartAfter: p.StartAfter,
Expand Down Expand Up @@ -287,14 +297,11 @@ func (n *layer) ListObjectsV2(ctx context.Context, p *ListObjectsParamsV2) (*Lis
func (n *layer) listSortedAllObjects(ctx context.Context, p allObjectParams) ([]*ObjectInfo, error) {
var (
err error
bkt *BucketInfo
ids []*object.ID
uniqNames = make(map[string]bool)
)

if bkt, err = n.GetBucketInfo(ctx, p.Bucket); err != nil {
return nil, err
} else if ids, err = n.objectSearch(ctx, &findParams{cid: bkt.CID}); err != nil {
if ids, err = n.objectSearch(ctx, &findParams{cid: p.Bucket.CID}); err != nil {
return nil, err
}

Expand All @@ -303,14 +310,14 @@ func (n *layer) listSortedAllObjects(ctx context.Context, p allObjectParams) ([]
for _, id := range ids {
addr := object.NewAddress()
addr.SetObjectID(id)
addr.SetContainerID(bkt.CID)
addr.SetContainerID(p.Bucket.CID)

meta, err := n.objectHead(ctx, addr)
if err != nil {
n.log.Warn("could not fetch object meta", zap.Error(err))
continue
}
if oi := objectInfoFromMeta(bkt, meta, p.Prefix, p.Delimiter); oi != nil {
if oi := objectInfoFromMeta(p.Bucket, meta, p.Prefix, p.Delimiter); oi != nil {
// use only unique dir names
if _, ok := uniqNames[oi.Name]; ok {
continue
Expand Down

0 comments on commit 5c02c42

Please sign in to comment.