def __init__(self, config): """ :param config: be complied with cup.util.conf.Configure2Dict().get_dict(). Shoule be dict like object :raise: cup.err.ConfigError if there's any config item missing """ ObjectInterface.__init__(self, config) required_keys = ['ak', 'sk', 'endpoint', 'bucket'] if not self._validate_config(config, required_keys): raise err.ConfigError(str(required_keys)) self._config = config self._ak = self._config['ak'] self._sk = self._config['sk'] self._endpoint = self._config['endpoint'] self._bucket = self._config['bucket'] import boto3 from botocore import exceptions from botocore import client as coreclient self._s3_config = coreclient.Config(signature_version='s3v4', s3={'addressing_style': 'path'}) logging.getLogger('boto3').setLevel(logging.INFO) logging.getLogger('botocore').setLevel(logging.INFO) logging.getLogger('s3transfer').setLevel(logging.INFO) log.info('to connect to boto3') self.__s3conn = boto3.client( 's3', aws_access_key_id=self._ak, aws_secret_access_key=self._sk, endpoint_url=self._endpoint, # region_name=conf_dict['region_name'], config=self._s3_config) self._exception = exceptions.ClientError
def __init__(self, config): """ :param config: { "uri":"ftp://host:port", "user":"******", "password":"******", "extra":None //timeout:30s } :raise: cup.err.ConfigError if there's any config item missing """ ObjectInterface.__init__(self, config) required_keys = ['uri', 'user', 'password'] if not self._validate_config(self._config, required_keys): raise err.ConfigError(str(required_keys)) self._uri = self._config['uri'] self._user = self._config['user'] self._passwd = self._config['password'] self._extra = self._config['extra'] self._dufault_timeout = 30 if self._extra is not None and isinstance(self._config['extra'], int): self._dufault_timeout = self._extra log.info('to connect to ftp server') self._ftp_con = ftplib.FTP() self._host = self._uri.split(':')[1][2:] self._port = ftplib.FTP_PORT if len(self._uri.split(':')[2]) > 0: self.port = int(self._uri.split(':')[2]) self._ftp_con.connect(self._host, self._port, self._dufault_timeout) self._ftp_con.login(self._user, self._passwd)