docs: def _remote_download(self, url):
          """To download the remote plugin package,
          there are four methods of setting filename according to priority,
          each of which stops setting when a qualified filename is obtained,
          and an exception is triggered when a qualified valid filename is ultimately unavailable.
  
          1. Add url `plugin_filename` query parameters
          2. The file name is resolved in the url, eg: http://xx.xx.com/plugin-v0.0.1.tar.gz
          3. Parse the Content-Disposition in the return header
          4. Parse the Content-Type in the return header
          """
          #: Try to set filename in advance based on the previous two steps
          if self.__isValidUrl(url):
              filename = self.__getFilename(url, scene=1)
              if not filename:
                  filename = self.__getFilename(url, scene=2)
              #: fix UnboundLocalError
              f = None
              try:
                  f = urllib2.urlopen(url, timeout=10)
              except (AttributeError, ValueError, urllib2.URLError):
                  raise InstallError("Open URL Error")
              else:
                  if not filename:
                      filename = self.__getFilename(f, scene=3)
                      if not filename:
                          filename = self.__getFilename(f, scene=4)
                  if filename and self.__isValidFilename(filename):
                      suffix = self.__getFilenameSuffix(filename)
                      with NamedTemporaryFile(mode='w+b', prefix='fpk-', suffix=suffix, delete=False) as fp:
                          fp.write(f.read())
                          filename = fp.name
                      try:
                          self.__unpack_tgz(filename) if self.__isValidTGZ(suffix) else self.__unpack_zip(filename)
                      finally:
                          os.remove(filename)
                  else:
                      raise InstallError("Invalid Filename")
              finally:
                  if f is not None:
                      f.close()
          else:
              raise InstallError("Invalid URL")