code: func (s *StreamArchive) StreamFile(relPath string, fi os.FileInfo, data []byte) error {
  	if fi.IsDir() {
  		fh, err := tar.FileInfoHeader(fi, "")
  		if err != nil {
  			return err
  		}
  		fh.Name = relPath + "/"
  		if err = s.Writer.WriteHeader(fh); err != nil {
  			return err
  		}
  	} else {
  		target := ""
  		if fi.Mode()&os.ModeSymlink != 0 {
  			target = string(data)
  		}
  
  		fh, err := tar.FileInfoHeader(fi, target)
  		if err != nil {
  			return err
  		}
  		fh.Name = filepath.Join(relPath, fi.Name())
  		if err = s.Writer.WriteHeader(fh); err != nil {
  			return err
  		}
  
  		if _, err = s.Writer.Write(data); err != nil {
  			return err
  		}
  	}
  	return nil
  }
docs: // StreamFile streams a file or directory entry into StreamArchive.