vufind-org / vufindharvest
VuFind Harvest 工具
Requires
- php: >=8.1
- laminas/laminas-http: >=2.2
- symfony/console: ^5.3||^6||^7
Requires (Dev)
- friendsofphp/php-cs-fixer: 3.51.0
- pear/http_request2: 2.6.0
- phing/phing: 2.17.4
- phpmd/phpmd: 2.15.0
- phpstan/phpstan: 1.10.59
- phpunit/phpunit: 10.5.11
- squizlabs/php_codesniffer: 3.9.0
README
VuFindHarvest
简介
VuFindHarvest 包含 OAI-PMH 收集逻辑。这是 VuFind 项目(https://vufind.org)的一部分,但也可能作为一个独立的工具或集成到其他处理元数据收集的软件中使用。
安装
将此库集成到您的项目中的推荐方法是使用 Composer(《https://getcomposer.org.cn》)。如果您希望将其作为一个独立的工具使用,只需克隆存储库并运行 composer install
或 php composer.phar install
(根据您的 Composer 设置)来下载依赖项。
概念
此工具旨在允许以管道方式处理 OAI-PMH 记录。其任务是收集来自一个或多个存储库的元数据到一个或多个目录中。它可以支持每条记录一个文件或一个文件中多个记录的方法。可以通过某些配置选项(主要是在需要时将数据从 OAI-PMH 标头复制到收集的记录本身)来处理和增强记录。
包含收集记录的每个目录还包含一个 last_harvest.txt 文件,它记录最近收集的记录日期。这使得工具可以在后续运行时重新执行,以执行增量更新并检索新内容。
中断的收集有时可以通过在收集目录中存在的 last_state.txt 文件来恢复,该文件将在工具异常终止后存在。
通过创建包含已从系统中删除的记录 ID 的 ".delete" 文件支持已删除的记录。
用法
此包包括一个 bin/harvest_oai.php
脚本,它为 OAI-PMH 收集提供了命令行界面。所有收集选项都可以在命令行中提供,或者可以使用 --ini
开关加载包含已保存选项的 .ini 文件。
不使用 .ini 文件进行收集
对于最基本的收集,您需要指定 --url
和 --metadataPrefix
选项,并包含一个目标参数指定记录应收集的位置。有关其他选项,请运行 php bin/harvest_oai.php --help
。
示例
php bin/harvest_oai.php --url=http://example.com/oai_server --metadataPrefix=oai_dc my_target_dir
使用 .ini 文件进行收集
当指定许多复杂选项或同时收集多个存储库时,使用 .ini 文件配置收集是最佳选择。.ini 选项比纯命令行选项提供更多的灵活性。请注意,在 .ini 驱动的收集期间传递给收集器的任何命令行选项将覆盖 .ini 文件中的等效设置。
有关 .ini 选项的完整列表和一些示例配置,请参阅 /etc/oai.ini 中的示例文件。
当使用 .ini 文件时,如果您在选项列表之后指定了一个参数,则仅使用与参数匹配的配置文件部分,并将记录收集到具有匹配名称的目录中。例如
php bin/harvest_oai.php --ini=/etc/oai.ini OJS
如果您省略了参数,将按顺序收集.ini文件的所有部分。
架构
如果您希望将此代码集成到另一个项目中,或扩展以支持更多选项,以下是最重要的顶级类
- VuFindHarvester\OaiPmh\HarvesterCommand - 提供VuFindHarvester\OaiPmh\Harvester的命令行界面
- VuFindHarvester\OaiPmh\HarvesterFactory - 工厂类,用于创建具有所有依赖项注入的VuFindHarvester\OaiPmh\Harvester对象
- VuFindHarvester\OaiPmh\Harvester - 类,用于执行单个OAI-PMH存储库的单次收集
以下是VuFindHarvester\OaiPmh\Harvester使用的关键依赖项
- VuFindHarvester\OaiPmh\Communicator - 对OAI-PMH协议使用的HTTP通信的包装(还使用响应处理器来操作检索到的结果)
- VuFindHarvester\OaiPmh\RecordWriter - 类,用于管理将OAI-PMH记录写入磁盘;利用可用的记录写入策略
- VuFindHarvester\OaiPmh\RecordXmlFormatter - 类,用于在写入磁盘之前处理/修复/增强收集到的XML数据
- VuFindHarvester\OaiPmh\SetLoader - 类,用于从OAI-PMH服务器检索集合信息(用于某些类型的可选XML增强)
- VuFindHarvester\OaiPmh\StateManager - 类,用于管理磁盘上的收集状态(上次收集日期、当前续订令牌),以协助增量收集和从问题中恢复
几个类使用VuFindHarvester\ConsoleOutput命名空间中的特性和类来帮助处理标准状态输出任务。
历史
请参阅CHANGELOG.md