code: func (c *Client) GetPartial(ctx context.Context, container, key string, offset, length int64) (rc io.ReadCloser, err error) {
  	if offset < 0 {
  		return nil, errors.New("invalid negative length")
  	}
  
  	req := newReq(ctx, c.keyURL(container, key))
  	if length >= 0 {
  		req.Header.Set("Range", fmt.Sprintf("bytes=%d-%d", offset, offset+length-1))
  	} else {
  		req.Header.Set("Range", fmt.Sprintf("bytes=%d-", offset))
  	}
  	c.Auth.SignRequest(req)
  
  	res, err := c.transport().RoundTrip(req)
  	if err != nil {
  		return
  	}
  	switch res.StatusCode {
  	case http.StatusOK, http.StatusPartialContent:
  		return res.Body, nil
  	case http.StatusNotFound:
  		res.Body.Close()
  		return nil, os.ErrNotExist
  	default:
  		res.Body.Close()
  		return nil, fmt.Errorf("azure HTTP error on GET: %d", res.StatusCode)
  	}
  }
docs: // GetPartial fetches part of the blob in container.
  // If length is negative, the rest of the object is returned.
  // The caller must close rc.