code: func (d *driver) Reader(ctx context.Context, path string, offset int64) (io.ReadCloser, error) {
  	resp, err := d.S3.GetObject(&s3.GetObjectInput{
  		Bucket: aws.String(d.Bucket),
  		Key:    aws.String(d.s3Path(path)),
  		Range:  aws.String("bytes=" + strconv.FormatInt(offset, 10) + "-"),
  	})
  
  	if err != nil {
  		if s3Err, ok := err.(awserr.Error); ok && s3Err.Code() == "InvalidRange" {
  			return ioutil.NopCloser(bytes.NewReader(nil)), nil
  		}
  
  		return nil, parseError(path, err)
  	}
  	return resp.Body, nil
  }
docs: // Reader retrieves an io.ReadCloser for the content stored at "path" with a
  // given byte offset.