Skip to content

Commit

Permalink
when --no-list is specified avoid every List() call (#5082)
Browse files Browse the repository at this point in the history
  • Loading branch information
harshavardhana authored Nov 17, 2024
1 parent 308a8ea commit bb4ff49
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 1 deletion.
5 changes: 4 additions & 1 deletion cmd/client-s3.go
Original file line number Diff line number Diff line change
Expand Up @@ -1659,18 +1659,21 @@ func (c *S3Client) Stat(ctx context.Context, opts StatOptions) (*ClientContent,
if opts.isZip {
o.Set("x-minio-extract", "true")
}

o.Set("x-amz-checksum-mode", "ENABLED")
ctnt, err := c.getObjectStat(ctx, bucket, path, o)
if err == nil {
return ctnt, nil
}

// Ignore object missing error but return for other errors
if !errors.As(err.ToGoError(), &ObjectMissing{}) && !errors.As(err.ToGoError(), &ObjectIsDeleteMarker{}) {
return nil, err
}

// when versionID is specified we do not have to perform List() operation
if opts.versionID != "" && errors.As(err.ToGoError(), &ObjectMissing{}) || errors.As(err.ToGoError(), &ObjectIsDeleteMarker{}) {
// when headOnly is specified we do not have to perform List() operation
if (opts.versionID != "" || opts.headOnly) && errors.As(err.ToGoError(), &ObjectMissing{}) || errors.As(err.ToGoError(), &ObjectIsDeleteMarker{}) {
return nil, probe.NewError(ObjectMissing{opts.timeRef})
}

Expand Down
1 change: 1 addition & 0 deletions cmd/client-url.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ func url2Stat(ctx context.Context, opts url2StatOptions) (client Client, content
versionID: opts.versionID,
isZip: opts.isZip,
ignoreBucketExists: opts.ignoreBucketExistsCheck,
headOnly: opts.headOnly,
})
if err != nil {
return nil, nil, err.Trace(opts.urlStr)
Expand Down
1 change: 1 addition & 0 deletions cmd/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ type StatOptions struct {
includeVersions bool
isZip bool
ignoreBucketExists bool
headOnly bool
}

// BucketStatOptions - bucket stat.
Expand Down

0 comments on commit bb4ff49

Please sign in to comment.