code: def share_file_with_link(self, path, **kwargs):
          
          perms = kwargs.get('perms', None)
          public_upload = kwargs.get('public_upload', 'false')
          password = kwargs.get('password', None)
  
          path = self._normalize_path(path)
          post_data = {
              'shareType': self.OCS_SHARE_TYPE_LINK,
              'path': self._encode_string(path),
          }
          if (public_upload is not None) and (isinstance(public_upload, bool)):
              post_data['publicUpload'] = str(public_upload).lower()
          if isinstance(password, six.string_types):
              post_data['password'] = password
          if perms:
              post_data['permissions'] = perms
  
          res = self._make_ocs_request(
              'POST',
              self.OCS_SERVICE_SHARE,
              'shares',
              data=post_data
          )
          if res.status_code == 200:
              tree = ET.fromstring(res.content)
              self._check_ocs_status(tree)
              data_el = tree.find('data')
              return ShareInfo(
                                  {
                                      'id': data_el.find('id').text,
                                      'path': path,
                                      'url': data_el.find('url').text,
                                      'token': data_el.find('token').text
                                  }
              )
          raise HTTPResponseError(res)
docs: Shares a remote file with link
  
          :param path: path to the remote file to share
          :param perms (optional): permission of the shared object
          defaults to read only (1)
          :param public_upload (optional): allows users to upload files or folders
          :param password (optional): sets a password
          http://doc.owncloud.org/server/6.0/admin_manual/sharing_api/index.html
          :returns: instance of :class:`ShareInfo` with the share info
              or False if the operation failed
          :raises: HTTPResponseError in case an HTTP error status was returned