Hyraxでファイルのサムネイルを作成する
Hyraxでは、アップロードしたファイルのサムネイルを生成できるようになっているが、いくつかの設定を行う必要がある。
LibreOffice
サムネイルの生成はLibreOfficeを用いて行うようになっているので、libreofficeパッケージをインストールする。
$ sudo apt install libreoffice
次に、Hyraxの config/initializers/hyrax.rb を編集し、LibreOfficeのパスを指定する。
# Path to the file derivatives creation tool config.libreoffice_path = "/usr/bin/soffice"
OpenJDK
Ubuntu 18.04ではlibreofficeパッケージをインストールすると、Java10(openjdk-11-jre)もインストールされる。しかし、インストール時に触れたとおり、Java10では同梱されているJettyと、その上で動作するFedoraが起動しない。このため、update-java-alternativesコマンドを用いて、既定でJava8を使用する設定を行う。
$ sudo update-java-alternatives --set java-1.8.0-openjdk-amd64 $ java -version openjdk version "1.8.0_171" OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-0ubuntu0.18.04.1-b11) OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)
FITS
Hyraxはファイルのメタデータの抽出に、FITS(The File Information Tool Set)を利用している。ダウンロードのページから、現時点での最新版のfits-1.3.0.zip*1をダウンロードして展開する。なお、GitHubにあるFITSのリポジトリで公開されているzipファイルには実行ファイルが含まれていないので、ここでは使用しない。
$ cd $ sudo apt install unzip $ wget https://projects.iq.harvard.edu/files/fits/files/fits-1.3.0.zip $ unzip -d fits fits-1.3.0.zip $ cd fits
fits.shを実行して、ヘルプが出力されることを確認する。
$ ./fits.sh -h usage: fits -f <arg> alternate fits.xml configuration file location (optional) -h print this message -i <arg> input file or directory -o <arg> output file or directory if -i is a directory -r process directories recursively when -i is a directory -v print version information -x convert FITS output to a standard metadata schema -xc output using a standard metadata schema and include FITS xml
次に、Hyraxの config/initializers/hyrax.rb を編集し、FITSのパスを指定する。
# Path to the file characterization tool config.fits_path = "/home/vagrant/fits/fits.sh"
ActiveJob
サムネイルの作成は、RailsのActiveJobを用いた非同期処理で行えるようになっているが、今回は開発環境で動作させるため、非同期処理を行わないようにする。Hyraxの config/environments/development.rb を以下のように変更する。
Rails.application.configure do # 途中省略 # 次の行を追加 config.active_job.queue_adapter = :inline end
以上の設定が終わったら、Hyraxを再起動する。
$ bin/rails hydra:server
Hyraxが起動したら画像ファイルをアップロードし、サムネイルの表示、ならびにファイルのMIMEタイプやハッシュなどのメタデータが追加されていることを確認する。

*1:HyraxのREADMEには1.0系を使用するように書いてあるが、手元の環境で1.3.0を試したところ、1.1.0で報告されているJPEGファイルからのメタデータの抽出の問題は起こっていないようなので、ここではテストを兼ねて1.3.0を使用することにする。