配置¶

pycsw 的运行配置写为此格式 default.cfg 。 pycsw 还有一个示例配置 ( default-sample.cfg )。 将文件复制到 default.cfg 并编辑以下内容:

[server]

[manager]

[metadata:main]

[repository]

注解

请参阅: 管理 ,用于连接您的元数据信息库和支持信息模型。

最大记录处理

下面介绍的是 maxRecords 怎样处理 GetRecords 请求时的配置:

server.maxrecords GetRecords.maxRecords 结果
未设定 未通过 10 (CSW 默认值)
20 14 20
20 未通过 20
未设定 100 100
20 200 20

备用配置

默认情况下,pycsw在运行时加载的是 default.cfg 。加载一个配置,修改``csw.py``来指定所需配置。另外,pycsw还可以通过附加 config=/path/to/default.cfg``到服务器的基础URL来显式定义一个配置,例如 ``http://localhost/pycsw/csw.py?config=tests/suites/default/default.cfg&service=CSW&version=2.0.2&request=GetCapabilities 。当 config 参数通过CSW客户端时,pycsw就会覆盖默认的配置所在地址,并且用这些指定的配置来完成接下来的一系列设置。

使用单个pycsw配置就可以部署大量的功能性CSW。

隐藏的位置

在做基URL时,一些备用配置的部署不用 config= 方式做声明。通常状态下,会有很多别的方式来做声明。

环境变量

有一种选择是使用 Apache 的 AliasSetEnvIf 指令。 例如,可以指定基 URL http://localhost/pycsw/csw.py?config=foo.cfg ,在 Apache 的 httpd.conf 下配置以下指令:

Alias /pycsw/csw-foo.py /var/www/pycsw/csw.py
SetEnvIf Request_URI "/pycsw/csw-foo.py" PYCSW_CONFIG=/var/www/pycsw/csw-foo.cfg

注解

在更改 Httpd.conf 后必须重新启动 Apache

pycsw 将以同样的方式配置设置 PYCSW_CONFIG 的环境变量,就如同它在基 URL 中指定了一样。 请注意,配置值 server.url 值必须匹配 Request_URI 值,这样在 pycsw 的功能 XML 中就可以做正确声明了。

包装器脚本

另一个选择是编写一个简单的包装器 (如 csw-foo.sh ),也会有相同的功能,而且无需重新启动 Apache 也可以部署:

#!/bin/sh

export PYCSW_CONFIG=/var/www/pycsw/csw-foo.cfg

/var/www/pycsw/csw.py