discoverygarden / flysystem_ocfl
v1.1.0
2023-11-10 13:49 UTC
Requires
- ext-json: *
- drupal/flysystem: ^2
README
这是一个允许访问OCFL存储结构中的Flysystem适配器实现。
目前,针对FCRepo 6风味存储中的二进制文件进行只读访问,特别是通过Islandora的视角,Islandora主要关注二进制文件的存储。
执行概述
OCFL存储在多个级别上是可扩展的
OCFL存储的确切用途仍由应用程序本身决定,该应用程序可能对不同对象应该如何结构有不同的建议,例如
为了支持这些多个可扩展点,我们定义了
- 布局:具有当前定义的扩展的基础实现的
OCFLPlugin
插件类型。- 我们预计布局将在OCFL存储根目录中的
ocfl_layout.json
文件中指定。- 严格来说,根据OCFL规范,此文件是可选的;然而,拥有它将大大简化布局插件的加载。
- 我们预计布局将在OCFL存储根目录中的
- 对象结构:基于
flysystem_ocfl.inventory_location
事件的基于事件评估- 这允许“可变HEAD”扩展注入其间接部分,但允许回退到对象根目录中静止的
inventory.json
的基本位置。
- 这允许“可变HEAD”扩展注入其间接部分,但允许回退到对象根目录中静止的
- 用于识别对象中的目标资源:基于
flysystem_ocfl.resource_location
事件的基于事件评估。- 这允许定位对象中的资源,特别是在Islandora广泛使用的Fedora Commons 6实例中,对象基于一个单一的“二进制”资源,在这种情况下,获取对象(例如我们的实例)最好解释为获取文件的字节流。
用法
这应该与islandora/islandora
中随带的fedora
驱动器提供类似的并行,可能通过您的Drupal站点的settings.php
配置,如下所示
{ "fedora": { "driver": "fedora", "config": { "root": "https://:8080/fcrepo/rest/" } } }
要直接从OCFL存储布局中读取,如下所示
{ "fedora": { "driver": "ocfl", "config": { "root": "/opt/fcrepo/fcrepo/data/ocfl-root", "id_prefix": "info:fedora/" } } }
假设,这甚至可以与另一个Flysystem实现(如S3)链式连接,如下所示
{ "your-desired-scheme": { "driver": "s3", "config": { "bucket": "your-ocfl-root-bucket", } }, "fedora": { "driver": "ocfl", "config": { "root": "your-desired-scheme://ocfl-root", "id_prefix": "info:fedora/" } } }
注意:由于Flysystem中的简单路径规范化,目前需要在存储桶中有一个额外的前缀(如示例中上述的ocfl-root
,但可以是任何东西)。
配置
有关Flysystem适配器配置的更深入背景,请参阅Flysystem模块文档。
目前为ocfl
驱动器有两个配置点
已知问题
此模块并非严格的问题,但可能与Drupal中使用非公开文件系统相关:https://www.drupal.org/project/drupal/issues/2786735
未来想法
- 允许通过Flysystem URI传递片段,在容器对象中被解释为不同的资源
- 目前没有此用途案例
故障排除/问题
遇到问题或解决问题了?请联系discoverygarden。
赞助商
- 爱尔兰利默里克大学
维护者
当前维护者