配置¶
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-CA
、fr-CA
、EN-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
orfalse
)来确认是否要优质打印。 默认值为false
- gzip_compresslevel: 压缩级别,最低是
1
,最高是9
。 默认值是不压缩 - domainquerytype: 在GetDomain中应当如何输出域值。 公认的域值有
list
和range
(最小/最大)。默认值是list
- domaincounts:在GetDomain中,是否要提供频率计数值的操作。 目前的值有
true
和false
。默认值为false
- profiles: 是否在运行时加载以逗号分隔的配置文件列表(默认为无)。 请参见 配置文件的插件
- smtp_host: SMTP 主机(默认为' 本地主机 ')通过发送电子邮件请求的方式处理
csw:ResponseHandler
参数 - spatial_ranking: 是否在对空间搜索的结果进行排名的一项参数(
true
或false
),此排名参数在每 K.J. Lanfear 2006 文本对象空间搜索的一个空间覆盖排名方法 。
[manager]
- transactions: 是否可以交易 (
true
或false
)。 默认值为否 (请参阅 事务 ) - 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]
- database:元数据库中完整的文件路径,数据库URL格式(见 http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls )
- table:元数据记录的表名(默认为
records
)。如果您在使用除了public
以外的DB模式PostgreSQL,表格就会被限定,像myschema.table
- mappings:自定义的映射库(请参见 映射到现有的存储库 )
- source:不在本地的数据库源(例如:请参考 GeoNode配置 , 开放性数据目录配置 )。现有值为`geonode`,odc
- filter:服务器端的数据库过滤器,适用所有CSW请求掩码(请参阅: 存储库中的筛选器)
注解
请参阅: 管理 ,用于连接您的元数据信息库和支持信息模型。
最大记录处理¶
下面介绍的是 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 的 Alias
和 SetEnvIf
指令。 例如,可以指定基 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