Omeka S Bulk Import Module: Usage Guide (February 2024 Edition)

Overview Bulk Import is a module for batch registration of items and media in Omeka S. https://github.com/Daniel-KM/Omeka-S-module-BulkImport It has been continuously updated and has become quite convenient, so this is a memo. Installation It can be installed in the usual way. However, the Log module must be installed beforehand. https://github.com/Daniel-KM/Omeka-S-module-Log Usage Here, I will introduce an example of registration using a CSV file. Configuration First, access the following and click the edit icon. ...

February 7, 2024 · 3 min · Nakamura

Workaround When Presentation API v2 Manifests Cannot Be Displayed in Mirador 3

Overview When loading a Presentation API v2 manifest file like the following into Mirador 3, a display error occurred. https://gist.githubusercontent.com/nakamura196/42fb6bca6a9fa137234c334cb313fc58/raw/4188ebccb7406ff5132331a4fecc4ace8bdd7ebc/ng.json Below is the display in Mirador 3. I investigated the cause and workaround, and am sharing the findings here. Cause The following error message was displayed. Despite providing IIIF v2 input, it appeared to be interpreted as v3. Error: A IIIF v3 localized property value must have an array as the value for a given language. at PropertyValue.ts:126:20 at Array.map (<anonymous>) at t.parse (PropertyValue.ts:123:29) at t.getLabel (ManifestResource.ts:35:28) at canvases.js:162:12 at index.js:67:25 at h (defaultMemoize.js:123:20) at index.js:81:40 at h (defaultMemoize.js:123:20) at Function.mapToProps (OpenSeadragonViewer.js:39:12) This appeared to occur when the canvas label was written in object format, as shown below: ...

February 6, 2024 · 2 min · Nakamura

Updating the IIIF Viewers Module for Omeka S

Overview IIIF Viewers is one of the modules for Omeka S. https://github.com/omeka-j/Omeka-S-module-IiifViewers The latest release is available here: https://github.com/omeka-j/Omeka-S-module-IiifViewers/releases/latest I made several updates this time, so this is a memorandum. Universal Viewer Version Update I updated Universal Viewer to v4.0.25. Additionally, I documented how to update Universal Viewer in the following section of README.md: https://github.com/omeka-j/Omeka-S-module-IiifViewers?tab=readme-ov-file#compilation-of-universal-viewer This was based on the documentation in the following module: https://github.com/Daniel-KM/Omeka-S-module-UniversalViewer I also documented how to update Mirador, but since the latest version was already installed, no update was performed. ...

February 5, 2024 · 2 min · Nakamura

Created a Simple TEI/XML File Viewer Using Next.js

Overview I created a simple viewer that displays the contents of TEI/XML files. https://github.com/utda/tei-viewer Here is a display example targeting TEI/XML of the Koui Genji Monogatari: https://utda.github.io/tei-viewer/?u=https://kouigenjimonogatari.github.io/tei/01.xml&v=true Usage As a minimum feature, when a IIIF manifest file is associated, the Mirador viewer is displayed. The association method is based on the following format: https://github.com/TEI-EAJ/jp_guidelines/wiki/IIIF画像とのリンク Additionally, when the n attribute is given to the pb tag, a page number display feature is provided. Furthermore, for Japanese language support, when v=true is given as a query parameter, vertical text is displayed. ...

February 5, 2024 · 1 min · Nakamura

How to Fix the 413 Request Entity Too Large Error in nginx-proxy

Overview I installed Docker on EC2 and used nginx-proxy and nginx-proxy-lets-encrypt to set up SSL. Everything was working fine with the above configuration, but when I created an app that POSTs relatively large files, the following error occurred and the upload failed. nginx-proxy 413 (Payload Too Large) I needed to increase Nginx’s client_max_body_size. Solution ChatGPT4 taught me the following solution, which resolved the issue. The 413 Request Entity Too Large error occurs when the payload of a request that the client is trying to send to the server (i.e., the size of the file being uploaded) exceeds the limit set on the server. To resolve this error, you need to increase the maximum request size in the Nginx configuration. ...

February 4, 2024 · 2 min · Nakamura

Configuring Amazon S3 as a Processing Source and AIP Storage Destination in Archivematica

Overview This is a memo on how to configure Amazon S3 files and folders as processing targets in Archivematica, and save the resulting AIPs to S3. Using S3 as storage is expected to facilitate integration with other systems and expand options for long-term AIP preservation. The following article from Wellcome Collection was helpful. https://docs.wellcomecollection.org/archivematica/administering-archivematica/bootstrapping Amazon S3 Configuration Create a bucket. This time, I created a bucket named archivematica.aws.ldas.jp in the us-east-1 region. ...

February 3, 2024 · 3 min · Nakamura

An Example of Specifying Image Frames in Universal Viewer

In recent years, it has become common for museums, libraries, and archives to publish images using the International Image Interoperability Framework (IIIF), an international framework for image sharing. https://iiif.io/ For publishing IIIF images, viewers such as Mirador and Universal Viewer are used. https://projectmirador.org/ https://universalviewer.io/ In digital archive systems that adopt the latter Universal Viewer, you can often obtain a URL specifying a particular frame by appending “#?cv={image frame index}”. Note that the index starts from 0, so to specify the 2nd frame, you would use 1. ...

February 2, 2024 · 1 min · Nakamura

How to Access S3 Buckets and Enable SSL Communication Using Docker-based Cantaloupe

Overview I introduced how to use the Docker version of Cantaloupe in the following article. To use this Docker-based Cantaloupe in a (non-large-scale) production environment, connection to Amazon S3 and SSL support are required. Here is an example of how to do this. Connecting to Amazon S3 The official documentation is available at: https://cantaloupe-project.github.io/manual/5.0/sources.html#S3Source The following Japanese article is also available: For the Docker version covered here, information was found at: ...

January 27, 2024 · 2 min · Nakamura

Trying Out File Information Tool Set (FITS)

Overview While investigating Archivematica, there were aspects of File Information Tool Set (FITS) behavior I wanted to verify, so I tried it using Docker. This is a memo of that process. https://github.com/harvard-lts/fits Installation The installation method using Docker is described at the following page. https://github.com/harvard-lts/fits?tab=readme-ov-file#docker-installation However, when accessing the following page mentioned in the manual, the latest release (1.6.0) that includes the Dockerfile could not be downloaded. https://projects.iq.harvard.edu/fits/downloads Instead, the latest zip file could be downloaded from the following GitHub releases page. ...

January 26, 2024 · 5 min · Nakamura

Trying the Docker Version of Cantaloupe

Overview While trying the Docker version of TEI Publisher, I found that a Docker version of Cantaloupe was being used, so I created a repository for using it standalone. https://github.com/nakamura196/docker_cantaloupe Usage instructions are provided in the README of the above repository. The following Docker image is used. https://hub.docker.com/r/islandora/cantaloupe Reference: Images That Can Be Served by Cantaloupe This is explained on the following page. https://cantaloupe-project.github.io/manual/5.0/images.html For high-resolution images, JPEG2000 or Pyramidal Tiled TIFF is recommended. ...

January 25, 2024 · 1 min · Nakamura

Drupal: Registering Files from URLs Using the Feeds Module

Overview This describes how to register files from URLs using the Feeds module. The following was helpful. https://www.drupal.org/docs/contributed-modules/feeds/feeds-howtos/importing-files Method Find the file field from the dropdown list and create a mapping target for the file or image field. For “File ID,” specify a mapping to the full URL (including the http/https prefix). Select “File ID” under “Reference by.” Configure the action so that the feed processes existing files. After configuring these changes, save the mapping. ...

January 23, 2024 · 1 min · Nakamura

How to Bulk Delete Files in Drupal

This is a memo on how to bulk delete files in Drupal. The following was helpful. https://www.drush.org/12.x/commands/entity_delete/ drush entity:delete file I hope this serves as a useful reference for situations such as when files can no longer be viewed due to errors like Drupal\Core\File\Exception\InvalidStreamWrapperException.

January 23, 2024 · 1 min · Nakamura

Sending Email Notifications for GitHub Actions Results: Using Gmail

Overview I had the opportunity to send email notifications for GitHub Actions processing results, so here are my notes. This time we’ll use Gmail. The following was helpful as a reference. https://stackoverflow.com/questions/69947109/sending-email-with-github-actions Gmail Configuration The details are described at the following link. Enable two-factor authentication and create an app password. https://github.com/dawidd6/action-send-mail?tab=readme-ov-file#gmail Here is an example of app password configuration. Local Testing Use act to run GitHub Actions in a local environment. ...

January 20, 2024 · 3 min · Nakamura

Handling Private Files in Omeka S

Overview In Omeka S, you can set public/private settings for each resource (item sets, items, media, etc.), but for files such as images associated with media, even if the private setting is applied, anyone who knows the file URL can access it. Typically, the URL follows this pattern: <Omeka installation directory>/files/original/<hash value>.jpg If the private setting is applied to the media, it would be rare for this file URL to be known, but there are cases where you want to avoid a situation where “anyone with the link” can access it. ...

January 14, 2024 · 4 min · Nakamura

Sending Emails via Amazon SES from Omeka S on Amazon Lightsail

Overview To send emails from Omeka S running on Amazon Lightsail, it appears that email sending configuration is required. This article introduces how to use Amazon SES. https://aws.amazon.com/jp/ses/ The following forum discussion was helpful. https://forum.omeka.org/t/configuring-sendmail-or-smtp-for-omeka-s-on-amazon-lightsail/19335/1 Amazon SES Configuration Configure Amazon SES by referring to the following site. https://qiita.com/Shun_konno/items/f51ae599b68e0d2d36ea Omeka S Configuration Edit the Omeka S local.config.php file as follows. <?php return [ 'logger' => [ // Log settings (as needed) ], 'mail' => [ 'transport' => [ 'type' => 'smtp', // Use SMTP 'options' => [ 'name' => 'ses-smtp-user', // Any name 'host' => 'email-smtp.us-east-1.amazonaws.com', // SES SMTP server endpoint 'port' => 587, // Port supported by SES (e.g., 587) 'connection_class' => 'plain', // Authentication type 'connection_config' => [ 'username' => 'your-ses-smtp-username', // SES SMTP username 'password' => 'your-ses-smtp-password', // SES SMTP password 'ssl' => 'tls', // SSL type ('tls' recommended) 'use_complete_quit' => true, ], ], ], ], // Other settings... ]; For host, specify the Amazon SES SMTP server endpoint corresponding to the AWS region you are using. The example uses the us-east-1 region endpoint, but change it as needed. For username and password, use the SMTP credentials generated in Amazon SES. Summary We hope this is helpful when using Omeka S with Amazon Lightsail. ...

January 13, 2024 · 1 min · Nakamura

Created a Page to Visually Browse Omeka S Themes

Overview I created a page for visually browsing Omeka S themes. https://satoru196.notion.site/satoru196/6f898ed1352e4c9fa013eee635cbabf4?v=02cab757b6cf4df6bfbedfeb85eca0a5 The following site is convenient for searching Omeka S themes: https://daniel-km.github.io/UpgradeToOmekaS/omeka_s_themes.html However, I thought it would be even more convenient to be able to see the appearance of themes and their star counts in a list view. Using the source data from the site above, I created this new page: https://github.com/Daniel-KM/UpgradeToOmekaS/blob/master/_data/omeka_s_themes.csv How It Was Created GitHub I used the GitHub API to retrieve the last update date and star count for each repository. To use the GitHub API, I created a Personal Access Token (PAT): ...

January 10, 2024 · 2 min · Nakamura

Aligning the Collated Tale of Genji with Modern Japanese Translations in Digital Genji Monogatari

Overview “Digital Genji Monogatari” is a site that aims to propose an environment to support research on The Tale of Genji as well as education and research activities using classical texts, by collecting and creating various related data about The Tale of Genji and linking them together. https://genji.dl.itc.u-tokyo.ac.jp/ One of the features provided by this site is the “alignment of the Collated Tale of Genji with modern Japanese translations.” As shown below, the corresponding sections between the “Collated Tale of Genji” and Yosano Akiko’s translation published on Aozora Bunko are highlighted. ...

January 7, 2024 · 4 min · Nakamura

Trying ro-crate-py

Overview ro-crate-py is a Python library for creating and consuming Research Object Crates (RO-Crate). https://doi.org/10.5281/zenodo.3956493 ro-crate-py is a Python library to create and consume Research Object Crates. It currently supports the RO-Crate 1.1 specification. Goal The goal is to create a page like the one shown below. https://nakamura196.github.io/rocrate_demo/crate/test/data/ro-crate-preview.html Dataset Page Individual Item Page JSON Data We will create JSON data like the following. https://nakamura196.github.io/rocrate_demo/crate/test/data/ro-crate-metadata.json For the item ID, we use the following OAI-PMH record. ...

January 2, 2024 · 3 min · Nakamura

Linking a GitHub Repository with Zenodo

Overview I recently published a plugin for comparing annotations in Mirador 3: https://github.com/nakamura196/mirador-compare-plugin This time, I connected this repository with Zenodo. As a result, a DOI is now automatically assigned each time a release is created: https://zenodo.org/doi/10.5281/zenodo.10449856 Zenodo Configuration Access the following and select the GitHub repository to link: /account/settings/github/ GitHub The following is not required, but prepares the GitHub repository for integration with Zenodo. Creating CITATION.cff By creating this, the ORCID ID appears to be displayed under Creators: ...

January 2, 2024 · 2 min · Nakamura

Trying OAuth2 Authentication for REST Resources Using Drupal's simple_oauth Module

Overview Drupal’s Simple OAuth (OAuth2) & OpenID Connect module is described as an implementation of the OAuth 2.0 Authentication Framework RFC. https://www.drupal.org/project/simple_oauth For related articles, please also refer to examples of cookie authentication and JWT authentication. Installation There appear to be version 5.x and 6.x of the simple_oauth module, but this time version 5.x is used. Install with the following: composer.phar require 'drupal/simple_oauth:^5.2' However, when using Sakura Rental Server, the following error occurred. PHP's sodium extension was required. ...

January 2, 2024 · 5 min · Nakamura