code: func (c *Client) Upload(file *File, manifest string, toEncrypt bool) (string, error) {
  	if file.Size <= 0 {
  		return "", errors.New("file size must be greater than zero")
  	}
  	return c.TarUpload(manifest, &FileUploader{file}, "", toEncrypt)
  }
docs: // Upload uploads a file to swarm and either adds it to an existing manifest
  // (if the manifest argument is non-empty) or creates a new manifest containing
  // the file, returning the resulting manifest hash (the file will then be
  // available at bzz:/<hash>/<path>)