Skip to content

Commit

Permalink
swapped s3 getObject with Head call for get Object info
Browse files Browse the repository at this point in the history
  • Loading branch information
awitas committed Mar 22, 2023
1 parent 47bc1e4 commit 5ddf06c
Showing 1 changed file with 24 additions and 8 deletions.
32 changes: 24 additions & 8 deletions s3/get.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,21 @@ func (s *storager) get(ctx context.Context, location string, options []storage.O
location = strings.Trim(location, "/")
_, name := path.Split(location)

object, err := s.GetObject(&s3.GetObjectInput{
Bucket: &s.bucket,
Key: &location,
})
object, err := s.HeadObject(&s3.HeadObjectInput{Bucket: &s.bucket,
Key: &location})

//object, err := s.GetObject(&s3.GetObjectInput{
// Bucket: &s.bucket,
// Key: &location,
//})
if err != nil {
return nil, err
}
hasObject := object != nil && (object.ContentLength != nil || object.LastModified != nil)
if !hasObject {
return nil, fmt.Errorf(noSuchKeyMessage + " " + location)
}
s.assignMetadata(options, object)
s.assignMetadataWithHead(options, object)
contentLength := int64(0)
modified := time.Now()
if object.LastModified != nil {
Expand All @@ -40,9 +43,6 @@ func (s *storager) get(ctx context.Context, location string, options []storage.O
if object.ContentLength != nil {
contentLength = *object.ContentLength
}
if object.Body != nil {
_ = object.Body.Close()
}
if err = s.presign(ctx, location, options); err != nil {
return nil, err
}
Expand All @@ -65,6 +65,22 @@ func (s *storager) assignMetadata(options []storage.Option, object *s3.GetObject
}
}

func (s *storager) assignMetadataWithHead(options []storage.Option, object *s3.HeadObjectOutput) {
meta := &content.Meta{}
if _, ok := option.Assign(options, &meta); ok {
meta.Values = make(map[string]string)
if len(object.Metadata) > 0 {
for k, v := range object.Metadata {
value := ""
if v != nil {
value = *v
}
meta.Values[k] = value
}
}
}
}

//Get returns an object for supplied location
func (s *storager) Get(ctx context.Context, location string, options ...storage.Option) (os.FileInfo, error) {
started := time.Now()
Expand Down

0 comments on commit 5ddf06c

Please sign in to comment.