def get_client_and_resource(self): # s3 client initialization ~ 100 ms, for 30 tasks it's a 3 seconds, so we need to cache it cache_key = f'{self.aws_access_key_id}:{self.aws_secret_access_key}:{self.aws_session_token}:{self.region_name}:{self.s3_endpoint}' if cache_key in clients_cache: return clients_cache[cache_key] result = get_client_and_resource(self.aws_access_key_id, self.aws_secret_access_key, self.aws_session_token, self.region_name, self.s3_endpoint) clients_cache[cache_key] = result return result
def get_client_and_resource(self): return get_client_and_resource(self.aws_access_key_id, self.aws_secret_access_key, self.aws_session_token, self.region_name, self.s3_endpoint)