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タイプやハッシュなどのメタデータが追加されていることを確認する。 f:id:nabeta:20180714125318p:plain

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