配置

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

[server]

  • home: pycsw 的完整文件系统路径
  • url: 生成服务器的网址
  • mimetype: 当HTTP响应时的MIME型
  • language: ISO 639-1 语言和 ISO 3166-1 α2服务器上的国家/地区代码 (例如 en-CAfr-CAEN-US
  • encoding: 编码的内容类别 (例如 ISO-8859-1,见 https://docs.python.org/2/library/codecs.html#standard-encodings ) 。 默认值是 'UTF-8'
  • maxrecords: 默认情况下再次浏览记录的最大数目。如果CSW客户端的 maxRecords 参数大于 server.maxrecords ,此值就会被强制性限制。 请参见 最大记录处理 的详细信息
  • loglevel: 日志记录级别 (见 http://docs.python.org/library/logging.html#logging-levels
  • logfile:日志文件的完整文件系统路径
  • ogc_schemas_base: OGC XML 模型文件结构树的网址库 (默认 http://schemas.opengis.net)
  • federatedcatalogues: 如果客户端有用户请求加入时, CSW端以逗号分隔的列表就会用于分布式搜索 (请参阅 分布式搜索 )
  • pretty_print: 输出的( true or false )来确认是否要优质打印。 默认值为 false
  • gzip_compresslevel: 压缩级别,最低是 1 ,最高是 9 。 默认值是不压缩
  • domainquerytype: 在GetDomain中应当如何输出域值。 公认的域值有 listrange (最小/最大)。默认值是 list
  • domaincounts:在GetDomain中,是否要提供频率计数值的操作。 目前的值有 truefalse 。默认值为 false
  • profiles: 是否在运行时加载以逗号分隔的配置文件列表(默认为无)。 请参见 配置文件的插件
  • smtp_host: SMTP 主机(默认为' 本地主机 ')通过发送电子邮件请求的方式处理 csw:ResponseHandler 参数
  • spatial_ranking: 是否在对空间搜索的结果进行排名的一项参数( truefalse ),此排名参数在每 K.J. Lanfear 2006 文本对象空间搜索的一个空间覆盖排名方法

[manager]

  • transactions: 是否可以交易 ( truefalse )。 默认值为否 (请参阅 事务 )
  • allowed_ips: IP 地址 (如 192.168.0.103)、 通配符 (如 192.168.0.*) 或 CIDR 表示法 (例如 192.168.100.0/24) 以逗号分隔的列表允许执行交易 (请参见 事务
  • csw_harvest_pagesize: 当收集其它CSW服务器时,每项请求的记录数都会显示在各页中 (每页默认的数量为 10)

[metadata:main]

  • identification_title: 服务项目标题
  • identification_abstract: 一些有关该服务的描述性文本
  • identification_keywords: 以逗号分隔的服务器有关的关键字列表
  • identification_keywords_type: 每 ISO 19115 MD_KeywordTypeCode codelist )的关键字类型。接受的值是``discipline``, temporal, place, theme, stratum
  • identification_fees: 与服务有关的费用
  • identification_accessconstraints: 访问与该服务相关的限制条目
  • provider_name: 服务提供者的名字
  • provider_url: 服务提供者的网址
  • provider_name: 服务提供者联系人
  • contact_position:提供者联系人的职位名称
  • contact_address: 提供者联系人的地址
  • contact_city:提供者联系人所在城市
  • contact_stateorprovince: 提供者联系人所在省份或更详细地址
  • contact_postalcode: 提供者联系人所在地区的邮政编码
  • contact_country: 提供者联系人所在国籍
  • contact_phone: 提供者联系人的电话号码
  • contact_fax: 提供者联系人的传真号码
  • contact_email: 提供者联系人的电子邮件地址
  • contact_url: 提供者联系人的详细URL
  • contact_hours: 提供者联系人的服务时数
  • contact_instructions: 如何与提供者取得联系
  • contact_role: 在 ISO 19115 CI_RoleCode codelist )有每位提供商联系人的职务。可接受的值包括 author, processor, publisher, custodian, pointOfContact, distributor, user, resourceProvider, originator, owner, principalInvestigator

[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