コード例 #1
0
 def _get_ftp(self):
     try:
         username, password = self._get_auth()
         if self._tls:
             ftp = FTP_TLS(self._uri, timeout=CONNECT_TIMEOUT)
         else:
             ftp = FTP(self._uri, timeout=CONNECT_TIMEOUT)
         ftp.login(username, password)
         if self._tls:
             ftp.prot_d()
         if not catch(ftp.cwd, self._path):
             if self._path.startswith("/"):
                 ftp.cwd("/")
             components = self._path.split("/")
             for component in components:
                 if not catch(ftp.cwd, component):
                     ftp.mkd(component)
                     ftp.cwd(component)
         return ftp
     except Exception:
         log.exception()
         log.warning(
             "[FTP] failed to establish server connection, disabled")
         self._disabled = True
     return None