def handle_entry(cls, entry: Entry, sftp: SftpClient, config: dict): to: str = config['to'] location: str = entry['location'] delete_origin: bool = config['delete_origin'] if to: try: to = render_from_entry(to, entry) except RenderError as e: logger.error('Could not render path: {}', to) entry.fail(str(e)) # type: ignore return try: sftp.upload(location, to) except SftpError as e: entry.fail(str(e)) # type: ignore return if delete_origin and Path(location).is_file(): try: Path(location).unlink() except Exception as e: logger.warning('Failed to delete file {} ({})', location, e) # type: ignore
def download_entry(cls, entry: Entry, config: dict, sftp: SftpClient) -> None: """ Downloads the file(s) described in entry """ path: str = unquote(urlparse(entry['url']).path) or '.' delete_origin: bool = config['delete_origin'] recursive: bool = config['recursive'] to: str = config['to'] try: sftp.download(path, to, recursive, delete_origin) except SftpError as e: entry.fail(e) # type: ignore
def download_entry(cls, entry: Entry, config: dict, sftp: SftpClient) -> None: """ Downloads the file(s) described in entry """ path: str = unquote(urlparse(entry['url']).path) or '.' delete_origin: bool = config['delete_origin'] recursive: bool = config['recursive'] to: str = config['to'] try: to = render_from_entry(to, entry) except RenderError as e: logger.error('Could not render path: {}', to) entry.fail(str(e)) # type: ignore return try: sftp.download(path, to, recursive, delete_origin) except SftpError as e: entry.fail(e) # type: ignore