🐕

mdx.jpのオブジェクトストレージとCantaloupe Image Serverを使ってIIIF画像を配信する

2024/07/07に公開

概要

mdx.jpのオブジェクトストレージとIIIFイメージサーバの一つであるCantaloupe Image Serverを使ってIIIF画像を配信する方法に関する備忘録です。

背景

以下の記事で、mdx.jpのオブジェクトストレージを使った画像の配信方法について紹介しました。

https://zenn.dev/nakamura196/articles/fa9478f5c0376c

また以下の記事で、Cantaloupe Image Serverで、Amazon S3に格納した画像を配信する方法について紹介しました。

https://zenn.dev/nakamura196/articles/b59cdbca551984

これらを組み合わせることにより、デジタルアーカイブにおけるIIIF画像配信コストの課題の解決を目指します。

方法

以下の記事で紹介したDocker版Cantaloupeを使用します。

https://zenn.dev/nakamura196/articles/af569d31524ec1

以下のリポジトリから、ソースコードをダウンロードいただけます。

https://github.com/nakamura196/docker_cantaloupe_s3

同梱されている.env.sample.envファイルにリネームし、設定を変更します。

# aws s3
CANTALOUPE_S3SOURCE_ENDPOINT=
# mdx.jp
# CANTALOUPE_S3SOURCE_ENDPOINT=https://s3ds.mdx.jp
CANTALOUPE_S3SOURCE_ACCESS_KEY_ID=
CANTALOUPE_S3SOURCE_SECRET_KEY=
CANTALOUPE_S3SOURCE_REGION=
CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME=

ポイントはCANTALOUPE_S3SOURCE_ENDPOINTです。ここに、https://s3ds.mdx.jpを与えて、取得したACCESS_KEY_IDSECRET_KEY、作成したBUCKET_NAMEREGIONを設定します。

デモ

冒頭の記事でも使用した、いらすとやさんの画像を利用します。

https://www.irasutoya.com/2016/09/blog-post_810.html

以下、上記でアップロードした同じ画像ファイルを、Cantaloupeを使って配信している例です。

  • info.json

https://cantaloupe.aws.ldas.jp/iiif/3/baby_asia_boy.png/info.json

  • グレー化: full/max/0/gray.jpg

https://cantaloupe.aws.ldas.jp/iiif/3/baby_asia_boy.png/full/max/0/gray.jpg

なお、Cantaloupeを使って画像配信を行う場合には、上記の記事で実施したACLの設定(EveryoneRead権限を与える)は不要です。デフォルトの設定を使用することで、オブジェクトストレージ上の画像ファイルへの直接アクセスは不可としつつ、Cantaloupeを介したアクセスのみを許可できるかと思います。

以下の記事で紹介したようなCantaloupe側のAccess Control設定を組み合わせることで、アクセス制御を実現することになるかと思います。

https://zenn.dev/nakamura196/articles/157878a9718d56

まとめ

Amazon S3に格納した画像をIIIF画像として配信する方法として、以下の方法もあります。これが、Amazon S3以外のオブジェクトストレージにも対応しているのか、今後調査してみたいと思います。

https://zenn.dev/nakamura196/articles/72e49979edf582

IIIF画像の配信にあたり、参考になりましたら幸いです。

Discussion