func NewS3File()

in lambda/internal/tarfile/s3file.go [226:244]


func NewS3File(cfg aws.Config, s3uri S3Uri) (*S3File, error) {
	client := s3.NewFromConfig(cfg)
	output, err := client.HeadObject(context.TODO(), &s3.HeadObjectInput{
		Bucket: &s3uri.Bucket,
		Key:    &s3uri.Key,
	})
	if err != nil {
		return nil, err
	}

	return &S3File{
		s3uri:  s3uri,
		client: client,
		i:      0,
		size:   output.ContentLength,
		// The total cache size is `iolimits.CacheBlockCount * iolimits.BlockSize`
		rcache: NewBlockCache(iolimits.CacheBlockCount),
	}, nil
}