通过pythons数据处理对象远程共享对象的SSL/概念方面

2024-06-16 11:36:08 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好,这里的居民们! 我想学习/详细说明通过远程共享对象方法服务对象

class ContainerFS():
    #contains stuffs, has its methods
    def sync(self):
         pass
    def dump(self):
         stuff()

class DataManager(BaseManager):
    def get_data(self):
        pass


class DataProcess(Process):
    def __init__(self, serverobj, authkey, public=False, port=11111):
        Process.__init__(self)
        self.authkey = authkey
        self.Obj = serverobj
        self.daemon = True
        self.port = port
        self.addr = '127.0.0.1'
        if public:
            self.addr = '0.0.0.0'

    def run(self):
        DataManager.register('get_data',
                             callable=lambda: self.Obj)
        manager = DataManager(
            address=(self.addr, self.port),
            authkey=self.authkey)

        srv = datamgr.get_server()
        srv.serve_forever()

类ContainerFS作为serverobj的参数提供。然后,它通过套接字向客户机提供数据。你知道吗

目前为止,客户的工作方式如下:

class DataClient(object):
    def __init__(self):
        pass

    def create(self, authkey):
        try:
            DataManager.register('get_data')
            self.m = DataManager(address=('127.0.0.1', 11111), authkey=authkey)
            return True
        except:
            return False

    def connect(self):
        try:
            self.m.connect()
            q = self.m.get_data()
            return q
        except:
            return False

考虑到可以共享任意python对象并以这种方式访问其方法,因此可能会有很多有趣的东西来自于这样一个肥沃的领域。所以,如果你有一些好主意,请把它们混合在一起。你知道吗

我尝试子类化SocketServer并让它以这种方式处理SSL,但未能实现。我怎么能对这东西有兴趣?如果没有SSL选项,那么使用ssh端口转发就足够了吗?你知道吗

我可以断言serverobj的方法调用在某种程度上是有效的吗。如果是,我应该去哪里:DataProcess、DataManager或serverobj?你知道吗

仍然在做这些事情而没有真正理解它。例如,我如何才能使用这个数据管理器坐在他们的空?你知道吗

我觉得以这种方式暴露python对象确实不安全。因此,我应该克制自己打造自己的“安全感”。我喜欢断言我的想法是错误的,以便通过阐述来检验。那就是我希望你能进来的地方。你知道吗

如果我不清楚或似乎没有任何意义,请指出它。我对什么都还不熟悉。。你知道吗


Tags: 对象方法selfdatagetreturninitport