自定义数据目录¶
数据目录是文件系统中目录存储其自定义配置和上载文件的位置。此配置定义如下:
地理网络使用的是什么词表?
GeoNetwork中插入了什么模式?
数据目录还包含目录用于各种目的的许多支持文件:
Lucene指数
空间索引
标志
已上载附加到元数据记录的文档
缩略图
在投入生产时,最好定义一个外部数据目录,以便将来更容易地进行更新。数据目录允许在需要时以只读模式运行WAR。
创建新的数据目录¶
在启动目录之前,需要创建数据目录。它必须是可读写的用户启动目录。
如果数据目录是空文件夹,则目录将使用 INSTALL_DIR/web/geonetwork/WEB-INF/data
.
如果未设置数据目录,则当应用程序启动时,日志中将显示以下消息:
2015-12-16 07:59:17,108 WARN [geonetwork.data.directory] - - Data directory properties is not set. Use geonetwork.dir or geonetwork.dir properties.
2015-12-16 07:59:17,108 WARN [geonetwork.data.directory] - - Data directory provided could not be used. Using default location: /data/dev/gn/3.0.x/web/src/main/webapp/WEB-INF/data
如果用户无法访问数据目录,则日志显示:
2015-12-16 08:09:17,723 WARN [geonetwork.data.directory] - - Data directory '/tmp/gndatadir' is not writable. Set read/write privileges to user starting the catalogue (ie. francois).
2015-12-16 08:09:17,723 WARN [geonetwork.data.directory] - - Data directory provided could not be used. Using default location: /data/dev/gn/3.0.x/web/src/main/webapp/WEB-INF/data
设置数据目录¶
可以使用以下方法设置数据目录变量:
Java环境变量
Servlet上下文参数
系统环境变量
Bean配置(添加在版本3.0.4中)
对于Java环境变量和servlet上下文参数,请使用:
<webappName>.dir,如果不使用地理网络.dir
对于系统环境变量的使用:
<webappName>目录,如果未使用geonnetwork目录设置
解析顺序为:
<webappname>.dir
Java环境变量(即-D<webappname>.dir=/a/data/dir)
Servlet上下文参数(即。web.xml文件)
配置.xmlappHandler参数(即。配置.xml)
系统环境变量(即<webappname>u dir=/a/data/dir)。”env变量中不支持
geonetwork.dir
Java环境变量(即-Dgeonetwork.dir=/a/data/dir)
Servlet上下文参数(即。web.xml文件)
配置.xmlappHandler参数(即。配置.xml)
系统环境变量(即geonnetwork_dir=/a/data/dir)。”env变量中不支持
Java系统属性¶
根据使用的servlet容器,还可以使用Java系统属性指定数据目录位置。
对于Tomcat,配置是:
CATALINA_OPTS="-Dgeonetwork.dir=/var/lib/geonetwork_data"
Bean配置¶
3.0.4 新版功能.
要使用自定义bean配置配置数据目录,请在 source file core/src/main/resources/config-spring-geonetwork.xml :
<bean id="GeonetworkDataDirectory" class="org.fao.geonet.kernel.GeonetworkDataDirectory" lazy-init="true">
<property name="systemDataDir" ref="GNSystemDataDir"/>
<property name="schemaPluginsDir" ref="GNSchemaPluginsDir"/>
</bean>
<bean id="GNSystemDataDir" class="java.nio.file.Paths" factory-method="get">
<constructor-arg index="0" value="/path/to/gn/dir"/>
<constructor-arg index="1"><array /></constructor-arg>
</bean>
<bean id="GNSchemaPluginsDir" class="java.nio.file.Paths" factory-method="get">
<constructor-arg index="0" value="/path/to/schema/dir"/>
<constructor-arg index="1"><array /></constructor-arg>
</bean>
使用S3对象存储¶
如果您的基础设施没有可用的持久性存储,您可以将geonwork配置为使用Amazon S3(或兼容的)对象存储来存储图像和数据。
为此,必须使用自定义bean配置。更换 source file filesystemStore , source file resourceStore 和 source file resources 豆子 source file core/src/main/resources/config-spring-geonetwork.xml 像这样的:
<bean id="s3credentials" class="org.fao.geonet.resources.S3Credentials">
<property name="region" value="eu-west-1"/>
<property name="bucket" value="geonetwork-test"/>
<property name="keyPrefix" value="geonetwork"/>
<!-- Only needed if you don't have a ~/.aws/credentials -->
<property name="accessKey" value="MyAccessKey"/>
<property name="secretKey" value="MySecretKey"/>
<!-- Only needed when not using Amazon S3-->
<property name="endpoint" value="sos-ch-dk-2.exo.io"/>
</bean>
<bean id="filesystemStore" class="org.fao.geonet.api.records.attachments.S3Store" />
<bean id="resourceStore"
class="org.fao.geonet.api.records.attachments.ResourceLoggerStore">
<constructor-arg index="0" ref="filesystemStore"/>
</bean>
<bean id="resources" class="org.fao.geonet.resources.S3Resources"/>
这个 source file s3credentials bean可以保留为空,并且可以使用以下系统环境变量来配置它(在容器环境中很方便):
AWS_S3_PREFIX
AWS_S3_BUCKET
AWS_DEFAULT_REGION
AWS_S3_ENDPOINT
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
数据目录的结构¶
数据目录包含:
data_directory/
|--config: Extra configuration (eg. could contain overrides)
| |--schemaplugin-uri-catalog.xml
| |--codelist: The thesauri in SKOS format
| |--schemaPlugins: The directory used to store new metadata standards
|
|--data
| |--metadata_data: The data related to metadata records
| |--resources:
| | |--htmlcache
| | |--images
| | | |--harvesting
| | | |--logos
| | | |--statTmp
| |
| |--metadata_subversion: The subversion repository
| |--backup: Folder containing removed metadata
|
|--index: All indexes used for search
| |--nonspatial: Lucene index
| |--spatialindex.*: ESRI Shapefile for the index (if not using spatial db)
高级数据目录配置¶
所有子目录可以使用Java系统属性单独配置。例如,要将索引目录放入自定义位置,请使用:
<webappName>。lucene.dir公司如果未设置,则使用:
geonetwork.lucene.dir
实例:
添加以下Java属性以启动-地理网络.sh脚本:
java -Xms1g -Xmx1g -Xss2M -XX:MaxPermSize=128m -Dgeonetwork.dir=/app/geonetwork_data_dir -Dgeonetwork.lucene.dir=/ssd/geonetwork_lucene_dir
添加以下系统属性以启动-地理网络.sh脚本:
export geonetwork_dir=/app/geonetwork_data_dir
export geonetwork_lucene_dir=/ssd/geonetwork_lucene_dir
如果没有对同义词库或模式进行任何更改,则可能与使用webapp中的版本有关。在这种情况下,设置:
-Dgeonetwork.dir=/data/catalogue
-Dgeonetwork.schema.dir=/app/tomcat/webapps/geonetwork/WEB-INF/data/config/schema_plugins
-Dgeonetwork.codeList.dir=/app/tomcat/webapps/geonetwork/WEB-INF/data/config/codelist
可以设置的属性列表如下:
geonetwork.dir
geonetwork.lucene.dir
geonetwork.spatial.dir
geonetwork.config.dir
geonetwork.codeList.dir
geonetwork.schema.dir
geonetwork.data.dir
geonetwork.resources.dir
geonetwork.svn.dir
geonetwork.upload.dir
geonetwork.backup.dir
geonetwork.formatter.dir
geonetwork.htmlcache.dir
检查配置¶
启动后,在 Admin console
> Statistics and status
> Information
页。