Skip to content

Commit 63feed0

Browse files
Merge pull request #138 from MichaHoffmann/mhoffmann/stat-object-instead-of-empty-read
s3: stat object instead of empty read
2 parents d29b6ed + 9f7c2ba commit 63feed0

File tree

1 file changed

+3
-13
lines changed

1 file changed

+3
-13
lines changed

providers/s3/s3.go

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import (
1515
"strings"
1616
"testing"
1717

18-
"github.com/efficientgo/core/logerrcapture"
1918
"github.com/go-kit/log"
2019
"github.com/go-kit/log/level"
2120
"github.com/minio/minio-go/v7"
@@ -438,21 +437,12 @@ func (b *Bucket) getRange(ctx context.Context, name string, off, length int64) (
438437
return nil, err
439438
}
440439
}
441-
r, err := b.client.GetObject(ctx, b.name, name, *opts)
442-
if err != nil {
443-
return nil, err
444-
}
445440

446-
// NotFoundObject error is revealed only after first Read. This does the initial GetRequest. Prefetch this here
447-
// for convenience.
448-
if _, err := r.Read(nil); err != nil {
449-
defer logerrcapture.Do(b.logger, r.Close, "s3 get range obj close")
450-
451-
// First GET Object request error.
441+
// StatObject to see if the object exists and we have permissions to read it
442+
if _, err := b.client.StatObject(ctx, b.name, name, *opts); err != nil {
452443
return nil, err
453444
}
454-
455-
return r, nil
445+
return b.client.GetObject(ctx, b.name, name, *opts)
456446
}
457447

458448
// Get returns a reader for the given object name.

0 commit comments

Comments
 (0)