func()

in server/pkg/server/storage/backends/container/driver_s3.go [39:62]


func (d *s3Loader) Reader(ctx context.Context, key string) (io.ReadCloser, error) {
	// Check fields
	if d.s3api == nil {
		return nil, fmt.Errorf("s3 service is nil")
	}
	if d.bucketName == "" {
		return nil, fmt.Errorf("bucktName is blank")
	}

	// Clean key
	key = strings.TrimPrefix(key, fmt.Sprintf("/%s/", d.bucketName))

	// Retrieve using S3 storage backend
	result, err := storage.S3(d.s3api, d.bucketName, d.prefix).GetObject(ctx, key)
	if err != nil {
		return nil, fmt.Errorf("s3: cloudstorage error: %w", err)
	}
	if result == nil {
		return nil, errors.New("s3: nil object returned")
	}

	// No error
	return result.Content, nil
}