openLDAP 新手 - 我试图简单地将 base64 编码的二进制 (16Kb) 图像添加到photo
person objectClass 的属性中,但无论我尝试什么,我都会收到此错误“没有语法 1.3.6.1.4.1.1466.115.121.1 的验证器”。 23 '。
另外,更改 ldif 以流式传输二进制图像(使用photo: <file:///tmp/t1.png
)也会失败并出现相同的错误。
我尝试过使用 Apache Directory studio(它获取二进制文件并将其转换为 base64 表示形式),但失败并出现相同的错误。我能够针对该jpegPhoto
属性使用“相同的 base64 文本”来实现此功能(因此这表明编码格式良好),但我只是想了解为什么它在照片属性上失败 - 有人能够解释吗?这是针对 Centos 上最新 OpenLDAP 的全新安装。
谷歌搜索这个错误给了我Googlewack。
每个 LDAP 属性都有特定的“语法”;它们并非全部定义为任意字符串或 blob。
该属性最初定义为具有专门采用 CCITT“Group 3 Fax”图像格式的
photo
图像- 这就是所讨论的语法 OID的含义。(这就是为什么
jpegPhoto
是一个单独的属性 - 后来添加它是为了保持与旧目录和客户端的兼容性,因为更改现有“照片”字段的数据类型不是一个好主意。)目前,您收到错误消息是因为 OpenLDAP 服务器根本不支持此数据格式,但如果支持,您仍然会收到有关 (JPEG) 数据未被识别为 G3Fax 图像数据的不同消息。
您可以编辑该属性的 OpenLDAP 架构以更改它接受的数据类型(通过 cn=config),或者您可以继续使用较新的“jpegPhoto”属性。