| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import warnings
- from dataclasses import dataclass
- from pathlib import Path
- import plac
- import pysftp
- @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("ftp1.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()
|