code: func shareFile(am auth.AuthMode, target blob.Ref, isDir bool) (string, error) {
  	cl, err := client.New(client.OptionAuthMode(am))
  	if err != nil {
  		return "", err
  	}
  	claim, err := newShareClaim(cl, target)
  	if err != nil {
  		return "", err
  	}
  	shareRoot, err := cl.ShareRoot()
  	if err != nil {
  		return "", err
  	}
  	if isDir {
  		return fmt.Sprintf("%s%s", shareRoot, claim), nil
  	}
  	return fmt.Sprintf("%s%s?via=%s&assemble=1", shareRoot, target, claim), nil
  }
docs: // shareFile returns the URL that can be used to share the target item. If the
  // item is a file, the URL can be used directly to fetch the file. If the item is a
  // directory, the URL should be used with pk-get -shared.