code: func (d Datastore) Upload(ctx context.Context, f io.Reader, path string, param *soap.Upload) error {
  	u, p, err := d.uploadTicket(ctx, path, param)
  	if err != nil {
  		return err
  	}
  	return d.Client().Upload(ctx, f, u, p)
  }
docs: // Upload via soap.Upload with an http service ticket