code: func (buh *blobUploadHandler) PatchBlobData(w http.ResponseWriter, r *http.Request) {
  	if buh.Upload == nil {
  		buh.Errors = append(buh.Errors, v2.ErrorCodeBlobUploadUnknown)
  		return
  	}
  
  	ct := r.Header.Get("Content-Type")
  	if ct != "" && ct != "application/octet-stream" {
  		buh.Errors = append(buh.Errors, errcode.ErrorCodeUnknown.WithDetail(fmt.Errorf("bad Content-Type")))
  		// TODO(dmcgowan): encode error
  		return
  	}
  
  	// TODO(dmcgowan): support Content-Range header to seek and write range
  
  	if err := copyFullPayload(buh, w, r, buh.Upload, -1, "blob PATCH"); err != nil {
  		buh.Errors = append(buh.Errors, errcode.ErrorCodeUnknown.WithDetail(err.Error()))
  		return
  	}
  
  	if err := buh.blobUploadResponse(w, r, false); err != nil {
  		buh.Errors = append(buh.Errors, errcode.ErrorCodeUnknown.WithDetail(err))
  		return
  	}
  
  	w.WriteHeader(http.StatusAccepted)
  }
docs: // PatchBlobData writes data to an upload.