有没有办法通过Python绑定给Zookeeper节点设置NULL ACL?

1 投票
1 回答
1176 浏览
提问于 2025-04-16 07:54

我正在尝试使用与zookeeper分发包一起提供的Python绑定来创建一个节点(在src/contrib/zkpython/目录下)。我使用的是zookeeper-3.3.1版本。

根据create的文档,如果ACL设置为NULL,那么这个节点会继承它父节点的ACL。不过,把这个参数设置为None却会导致一个无效的ACL异常。

我查看了zookeeper.c中的parse_acls,发现它和文档的说法有冲突,但我对Python C API的经验不多。

如果我不能把这个ACL设置为null,那有没有其他的ACL设置可以让它继承父节点的呢?

1 个回答

2

我也遇到了同样的问题,但没有找到解决办法。作为一种变通方法,你可以添加一个额外的步骤。比如:

import zookeeper as zk
parent_path = "/"
stat, acl = zk.get_acl(zoohandle, parent_path)
ret = zk.create(zoohandle, node_path, "", acl, 0)

另外一个小建议:在zookeeper-3.3.1版本中,zk.get()这个方法只会返回最多512个字节的节点数据。这个问题应该会在下一个版本(3.3.3)中得到修复。

撰写回答