123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import plac
- import pysftp
- from pathlib import Path
- from dataclasses import dataclass
- import warnings
- @dataclass
- class FtpConfig:
- server: str
- username: str
- password: str
- path: str
- class FtpClient:
- commands = ['upload', 'download_dir']
- def __init__(self):
- self.base_dir = Path(__file__).parent
- # cfg = json.load(open(self.base_dir.joinpath('ftp_config.json'), 'r'))
- # self.ftp_cfg = FtpConfig(**cfg)
- # self.ftp_cfg = FtpConfig("ftp.global-cube.com", "p33781016-vm", "Gcbs12ma-vm2020!!", "/")
- self.ftp_cfg = FtpConfig("ftp.global-cube.com", "u1339416173", "dihob#ratuy5kub%", "/")
- warnings.filterwarnings('ignore')
- @plac.pos('filename', '', type=str)
- def upload(self, filename='CARLO.csv'):
- cnopts = pysftp.CnOpts()
- cnopts.hostkeys = None
- with pysftp.Connection(self.ftp_cfg.server,
- username=self.ftp_cfg.username,
- password=self.ftp_cfg.password,
- cnopts=cnopts) as ftp_conn:
- ftp_conn.cwd(self.ftp_cfg.path)
- ftp_conn.put(filename)
- # print(res)
- @plac.pos('path_from', '', type=str)
- @plac.pos('path_to', '', type=str)
- def download_dir(self, path_from='/server2019', path_to='./'):
- cnopts = pysftp.CnOpts()
- cnopts.hostkeys = None
- with pysftp.Connection(self.ftp_cfg.server,
- username=self.ftp_cfg.username,
- password=self.ftp_cfg.password, cnopts=cnopts) as ftp_conn:
- ftp_conn.cwd(path_from)
- files_list = ftp_conn.listdir()
- print(files_list)
- ftp_conn.get_d(path_from, path_to)
- if __name__ == '__main__':
- # plac.Interpreter.call(ftp)
- FtpClient().download_dir()
|