Cantaloupeでdelegate scriptを使ってAzure Storage上のファイルパスを動的に変換する方法

はじめに IIIFサーバーのCantaloupeでAzure Storageを使用している際、IIIF URLのidentifierと実際のAzure Storage上のファイルパスが異なる場合があります。本記事では、この問題をdelegate scriptを使って解決する方法を詳しく解説します。 課題 以下のようなファイル構造で画像を管理しているとします: A ├ │ │ │ │ │ │ │ z ─ u ─ r e i ├ │ │ │ │ └ m ─ ─ S a ─ ─ t g o e c ├ │ └ c └ r s ─ ─ o ─ a l ─ ─ l ─ g l l e e i └ i └ e c t ─ t ─ c C t e ─ e ─ t o i m m i n o 0 i 0 i o t n 0 t 0 t n a 1 1 e 2 e 2 i / / m / m / n 0 0 e 0 0 r 1 2 : _ _ 0 0 m 0 0 y 1 1 c . . o j j n p p t g g a i n e r しかし、IIIF URLでは以下のようにアクセスしたい: ...

2025年8月12日 · 14 分 · Nakamura

Cantaloupe: Microsoft Azure Blob Storageに格納した画像を配信する

概要 IIIFイメージサーバの一つであるCantaloupe Image Serverについて、Microsoft Azure Blob Storageに格納した画像を配信する方法の備忘録です。 以下のMicrosoft Azure Blob Storage版です。 方法 今回はDocker版を使用します。 以下のリポジトリをクローンしてください。 https://github.com/nakamura196/docker_cantaloupe 特に、.env.azure.exampleを.envにリネームして、環境変数を設定します。 # C C C # C L A A A A E F N N N F N T o T T T o T S r A A A r A _ L L L L E M O O O T O N i U U U r U C c P P P a P R r E E E e E Y o _ _ _ f _ P s A A A i H T o Z Z Z k O _ f U U U S E t R R R T M E E E = A A S S S I z T T T L u O O O = r R R R e A A A G G G B E E E l S S S o O O O b U U U R R R S C C C t E E E o _ _ _ r A A C a C C O g C C N e O O T U U A N N I T T N _ _ E N K R A E _ M Y N E = A = M E = 下の二つは、Traefikを用いたHTTPS化の設定も含めています。 ...

2024年12月23日 · 2 分 · Nakamura

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

概要 mdx.jpのオブジェクトストレージとIIIFイメージサーバの一つであるCantaloupe Image Serverを使ってIIIF画像を配信する方法に関する備忘録です。 背景 以下の記事で、mdx.jpのオブジェクトストレージを使った画像の配信方法について紹介しました。 また以下の記事で、Cantaloupe Image Serverで、Amazon S3に格納した画像を配信する方法について紹介しました。 これらを組み合わせることにより、デジタルアーカイブにおけるIIIF画像配信コストの課題の解決を目指します。 方法 以下の記事で紹介したDocker版Cantaloupeを使用します。 以下のリポジトリから、ソースコードをダウンロードいただけます。 https://github.com/nakamura196/docker_cantaloupe_s3 同梱されている.env.sampleを.envファイルにリネームし、設定を変更します。 # C # # C C C C A A A A A a N m C N N N N w T d A T T T T s A x N A A A A L . T L L L L s O j A O O O O 3 U p L U U U U P O P P P P E U E E E E _ P _ _ _ _ S E S S S S 3 _ 3 3 3 3 S S S S S S O 3 O O O O U S U U U U R O R R R R C U C C C C E R E E E E _ C _ _ _ _ E E A S R B N _ C E E A D E C C G S P N E R I I O D S E O C I P S T N L N O _ _ = O T I K K O = N E E K T Y Y U = _ = P h I S t D T t = R p A s T : E / G / Y s _ 3 B d U s C . K m E d T x _ . N j A p M E = ポイントはCANTALOUPE_S3SOURCE_ENDPOINTです。ここに、https://s3ds.mdx.jpを与えて、取得したACCESS_KEY_IDやSECRET_KEY、作成したBUCKET_NAMEやREGIONを設定します。 ...

2024年7月7日 · 2 分 · Nakamura

Docker版Cantaloupeを使用して、S3バケットにアクセスしSSL通信を行う方法

概要 Docker版のCantaloupeの使い方を以下で紹介しました。 このDocker版Cantaloupeを(大規模ではない)production環境で使用するには、Amazon S3との接続や、SSL対応が求められます。その方法を一例を紹介します。 Amazon S3との接続 公式では以下で紹介されています。 https://cantaloupe-project.github.io/manual/5.0/sources.html#S3Source 日本語の記事として以下があります。 また、今回扱うDocker版では、以下に記載がありました。 https://github.com/Islandora-Devops/isle-buildkit/blob/main/cantaloupe/README.md#settings そこで、S3と最低限の接続を行うためのリポジトリを作成しました。 https://github.com/nakamura196/docker_cantaloupe_s3 .env.exampleを.envにリネームまたはコピーして、必要な値を入力します。 SSL対応 以下の記事を参考にしました。EC2上にDockerをインストールし、nginx-proxyとnginx-proxy-lets-encryptを利用してSSL化を行いました。 https://qiita.com/atsuya/items/7cb6e0ccee63d751d41f v # s n e e o e r p r n l l c h v d t d s r v g e u e t h h w e i o i i i c p l r t i c d - - - m r m o p o f e o x c n m o o o a e s m o e o e t l s a r a x n y e x a n r - - l - - - b - s e a n p " l c v h s s : t r k u t n : s - g t t u e t n g t e n u e h t v : : : a s l e a : p e a s " " m h d v c / l " a c e a n g m r o m a m : t r m ' r : i : 8 4 e t h h e s s c r r : i d i e t s l r : : n e 3 o n 0 4 s m p o r a r : o t y n s n s s t : a : ' x j e : 3 : l a s t r m : p j e _ x : : : r l y w r 8 : : r t s / / . t r r o - / u u : c : i _ 0 4 / a : : r d g a : c _ n p e e s n o l n " 4 u m / / u o i l s n : r t t r m d a 3 s : e e n c t w / a o c c d m e m " r t t / k h a l m x / s o o r e e c c d e u y e e y n n h c n / : s t / / o r b s t : " g g a k _ n h c n n c / . s i i r e l g n a / g g k n j e n n n e r i i g r n i i e g r n g x x . n n i e g n n r i c c i / n s k x n / i x x . n s r n c v g o - x n n / s x . y x e h i c p - g x c o - l p - r o n k r p i / h e c p e t p t s x : o r n d o r k r t - r s t / x o x h s t : s n o : . h v y x / p t s x e g x r d t a y h a . : t y n i y w m r t r d r m - c n - l / m a o p w r x l r l m / i y - e u d t p p t n o h t r s / c - _ o - d k e n x e o e n g y n c r c i - c k . r n c r e s y x o y r o p _ m p . c t p p t s k / r a o : l o n c r o x i k o g y o : : _ n r / c o v o a m r p / a l n o i g o / n n . g n i g n i x n x _ p r o x y " s n e e r c t d v a w e i n i e r o f e c t m n e r a x e a a v C C C C C C C C V L L s k u t n s l g i A A A A A A A A I E E t s l e a : o e r N N N N N N N N R T T a : t r m u : o T T T T T T T T T S S r : n e p n A A A A A A A A U E E t a : e i m L L L L L L L L A N N : l : s e O O O O O O O O L C C : c l n U U U U U U U U _ R R a o a t P P P P P P P P H Y Y l m n : E E E E E E E E O P P w m d _ _ _ _ _ _ _ _ S T T a o o E E S S S S S S T _ _ y n r N N O 3 3 3 3 3 : H E s _ a D D U S S S S S O M l / P P R O O O O O < S A i c O O C U U U U U カ T I n a I I E R R R R R ス : L k n N N _ C C C C C タ : t T T S E E E E E ム < a _ _ T _ _ _ _ _ ド カ < l A A A A S R B L メ ス メ o D D T C E E A O イ タ ー u M M I C C G S O ン ム ル p I I C E R I I K > ド ア e N N : S E O C U メ ド : _ _ S T N L P イ レ 2 E S S _ _ : O _ ン ス . N E 3 K K O S > > 0 A C S E E $ K T . B R o Y Y { U R 1 L E u _ : C P A 0 E T r I A S T D : c D $ N T E : e : { T R G m C A A Y f y $ A L T : a _ { N O E l a C T U G B s d A A P Y a e m N L E _ s i T O _ B i n A U S U c _ L P 3 C L p O E S K o a U _ O E o s P S U T k s E 3 R _ u _ S C N p S O E A S 3 U _ M t S R R E r O C E : a U E G t R _ I $ e C S O { g E E N C y _ C } A A R N # C E T C T A O E _ L r S K O S E U a _ Y P n K } E o E _ t Y S h _ 3 e I S r D O } U s R t C r E a _ t B e A g S y I C i L f O O n K e U e P d S e T d R A T E G Y _ B U C K E T _ N A M E } まとめ IIIF画像サーバの小中規模の利用にあたっては、上記のような形が比較的容易な導入方法の一つに当たるかと思います。 ...

2024年1月27日 · 7 分 · Nakamura

Docker版のCantaloupeを試す

概要 TEI PublisherのDocker版を試していたところ、docker版のcantaloupeが使用されていたので、それを単体で使用できるリポジトリを作成しました。 https://github.com/nakamura196/docker_cantaloupe 使用方法は上記リポジトリのREADMEに記載しております。 以下のDocker imageを使用しています。 https://hub.docker.com/r/islandora/cantaloupe 参考:Cantaloupeで配信可能な画像 以下のページで説明されています。 https://cantaloupe-project.github.io/manual/5.0/images.html 高解像度の画像については、JPEG2000またはTIFFのPyramidal Tiledが推奨されています。 一方、解像度が比較的小さい画像の場合は、JPEGやPNGファイルをそのまま配信できるようでした。 http://localhost:8182/iiif/2/baby_role_towel_utsubuse.png/200,200,200,200/full/0/default.jpg (いらすやの画像を使用しています。) iiifというフォルダに画像を格納するだけで、IIIF Image APIの挙動を確認することができます。 まとめ CantaloupeやIIIF Image APIの挙動の確認にあたり、参考になりましたら幸いです。

2024年1月25日 · 1 分 · Nakamura

Cantaloupe: サービスとして実行する

概要 Cantaloupe Image Serverは以下のコマンドで実行できます。 j a v a - D c a n t a l o u p e . c o n f i g = c a n t a l o u p e . p r o p e r t i e s - X m x 2 g - j a r c a n t a l o u p e - 5 . 0 . 5 . j a r しかしこの方法では、ssh接続が切れた場合など、Cantaloupeサーバが止まってしまいます。 ...

2023年11月16日 · 5 分 · Nakamura

Cantaloupe: Amazon S3に格納した画像を配信する

概要 IIIFイメージサーバの一つであるCantaloupe Image Serverについて、Amazon S3に格納した画像を配信する方法の備忘録です。 なお、Amazon S3に格納した画像を配信する別の方法として、以下の記事で紹介した方法もありますので、参考になりましたら幸いです。(記事執筆時点からツールが更新されているようで、記事通りに進められないかもしれません。) 設定 以下に公式マニュアルが公開されています。 https://cantaloupe-project.github.io/manual/5.0/sources.html#S3Source 以下のファイルを編集します。 /cantaloupe-5.0.5/cantaloupe.properties まず、source.staticをS3Sourceに変更しました。 # # # # # # s # # o # S # U ` s u # O # s H o r # U # e t u c # R # s t r e # C # p c . # E # o S e s # S # n o . t # # e u s a # # r t t # # s c a i # # o e t c # # u ` i # # r , c = # # c # # e ` = S # # J 3 # # f d F S # # o b i o # # r c l u # # S e r # # a o s c # # l u y e # # l r s # # c t # # r e e # # e ` m # # q , S # # u o # # e ` u # # s S r # # t 3 c # # s S e # # . o # # u # # A r # # v c # # a e # # i ` # # l , # # a # # b a # # l n # # e d # # # # v ` # # a A # # l z # # u u # # e r # # s e # # S # # a t # # r o # # e r # # a # # ` g # # F e # # i S # # l o # # e u # # s r # # y c # # s e # # t ` # # e . # # m # # S # # o # # u # # r # # c # # e # # ` , 次に、S3Source.access_key_id、S3Source.secret_key、S3Source.BasicLookupStrategy.bucket.nameを設定します。 ...

2023年11月16日 · 6 分 · Nakamura

CantaloupeのAccess Controlを試す

概要 CantaloupeのAccess Controlを試しましたので、備忘録です。 https://cantaloupe-project.github.io/manual/5.0/access-control.html Bearer認証 以下を参考にしました。 https://cantaloupe-project.github.io/manual/5.0/access-control.html#Tiered Access All or Nothing Access 認証情報が間違っている場合には、エラーを返却するものです。 以下のように、tokenがtestの場合は返却するようにしました。 d e f e n a h i e r } d u e f n e t a t i e d t h d h o f n u o e e k r d r ' ' r r a e t e n s c i d n o t t h z = e k u { a a e r = e r t l ( c & n n u l o o . h s e p n s e = t _ n t t t a = r c g i e . a d u o e o x s v r e " e d ' n t e a t r t e s [ l l _ [ e ' = ' e u w 7 s > = r c e i . t = e t s t . " > ' { q { . h h B } u f ? e 4 e ) e | i ( a 0 a s n r ' d 1 r t a s B e , e _ m t e r r h e a . e , r l c a e e h d v r n a e a g r r l t s s u h e ' e t ] | - = " n 1 U a ] T m F e - . 8 d " o ' w n c a s e = = ' a u t h o r i z a t i o n ' } 上記の挙動を確認するGoogle Colabを作成しました。 ...

2023年9月21日 · 5 分 · Nakamura

Cantaloupeでinfo.jsonに値を追加する

概要 以下を参考に、Cantaloupeが返却するinfo.jsonに値を追加してみました。 https://cantaloupe-project.github.io/manual/5.0/endpoints.html 方法 上記のページを参考に、extra_iiif3_information_response_keysを以下のように修正してみました。 d e f e n e { } d x t ' ' ] ' ' ' r r s , e i x a i e { } x p m _ g r i t p i h v ' ' ' ' f c ' i t i @ @ p l ' ' i s c i t r a f ' e d y o b = = = 3 ' ' p f e > > > _ = : e i l i > = ' l ' c c c n > ' : e : o o o f ' h ' n n n o h [ t ' : ' t t t r t t A L e e e m t p u ' o x x x a p s t h g t t t t : : h t . . . i / / C t I d d d o / / o p n i i i n e e o : ' g g g _ x x k ( ( ( r a a i / ' ' ' e m m e i m m m s p p S i e e e p l l e i t t t o e e r f a a a n . . v . d d d s o o i i a a a e r r c o t t t _ g g e / a a a k / / 1 a ' ' ' e l a ' p , , , y i u , i s c t / ' ' ' ( e h a e i x o n / u x p m p s l t i t p t e o h f c _ i . g / ' ' s o h i 1 ) ) t n t n / , , r s m ' l i l , o n = ' g g , i ' { n ) } ' ) , 結果、以下のようなinfo.jsonを取得できました。 ...

2023年9月20日 · 4 分 · Nakamura

Cantaloupeのoverlayを試す

概要 Cantaloupeが提供するoverlayの機能を試します。 https://cantaloupe-project.github.io/manual/5.0/overlays.html BasicStrategy BasicStrategyでは、cantaloupe.propertiesの設定に基づき、重ね合わせを行うようです。 以下のように、画像に画像を重ねることができます。以下のいらすとやさんの画像を使わせていただきました。 https://www.irasutoya.com/2020/12/blog-post_279.html 後述する設定ファイルでpositionにbottom rightを設定したため、以下のように、右下に指定した画像が表示されました。 cantaloupe.propertiesのoverlays.BasicStrategy.enabledとoverlays.BasicStrategy.imageを修正しました。 # # # # # # # # # # # v v v v # O # C ` u e W e ` e A e # V # o o s r h r i r b r # E # n v e l e l m l s l # R # t e a t a a a o a # L # r r a y h y g y l y # A # o l s e s e s u s # Y # l a d . r . ` . t . # S # s y e s B B e B # # s l t t a o a a # # h . e r o s r s p s # # o B g a i i a i # # w a a t e c ` c t c # # s t e n S s S h S # # i e g a t t t t # # v c y b r r r o r # # e S m l a i a r a # # r t e = e t n t t # # l r t e g e U e # # a a h B g ` g R g # # y t o a v y . y L y # # s e d s e . . . # # g . i r e t o i # # a y c l n y f m # # r . ( S a a p a # # e * S t y b e t g # # ` e r s l h e # # c e a e = e # # o k t u d = # # n e t e s i # # f y h g i = m v h # # i s e y n a e t # # g g t g r t # # u i u r e l p # # r n s t u a s # # e e h e y : # # d t r e / # # . h # i / # # i m B m 1 # # ` s a a f a . # # B n s a g b # # a s u i l e p # # s e a c s . . # # i c l S e b # # c t . t M l # # S i ) r u o # # t o a s g # # r n t t s # # a . e p # # t g b o # # e ` y e t # # g S . . # # y c a c # # ` r o # # i P m # # w p N / # # i t G - # # l S 8 # # l t f F # # r i U # # u a l E # # s t e z # # e e . 6 # # g v # # t y B # # h ` n # # e o # # w Q # # i / # # l X # # l 7 # # z # # M # # V A u h Q M I / A A A A A A A B c Z 0 / V I 1 Z 9 e N 7 6 p I j 2 r f H s h v e N b F o M K u b X Y T p A C N c B G A s Y H Q / s 4 0 0 / b a b y _ r o l e _ t o w e l _ u t s u b u s e . p n g ScriptStrategy ScriptStrategyでは、cantaloupe.propertiesのdelegate_script.pathnameに設定したスクリプトのoverlay関数に基づき、重ね合わせを行うようです。 ...

2023年9月20日 · 9 分 · Nakamura

Cantaloupeの管理画面を有効化する

概要 Cantaloupeの管理画面を有効化する方法です。以下のようなサーバ情報を閲覧できました。 設定方法 cantaloupe.propertiesの以下の箇所を編集します。 # e e e n n n E d d d n p p p a o o o b i i i l n n n e t t t s . . . a a a t d d d h m m m e i i i n n n C . . . o e u s n n s e t a e c r b r r o l n e l e a t d m P e = a = n = < e t パ l r a ス , u d ワ e m ー a i ド t # n > / f a a d l m s i e n . 結果、以下のようなURLにアクセスして、Basic認証画面が表示されればOKです。 ...

2023年9月20日 · 1 分 · Nakamura

EC2に立てたCantaloupeをHTTPS対応する

はじめに 以下の記事で、EC2にCantaloupeを立てる方法を記載しました。 今回は、独自ドメインの設定とHTTPS対応を行います。 独自ドメインの設定 今回、cantaloupe.aws.ldas.jpというドメインを54.172.71.20に割り当てます。Route 53を使う場合、以下のように設定できます。 SSL証明書の取得 s a c u p e d t r o t b s i o u n t s t c a e l r l t o c n e l r y t b o - t s t a n d a l o n e - d c a n t a l o u p e . a w s . l d a s . j p r S E P h a ( W s p d E ( A R S C K T T C I o a n ( l t g Y o h a e F Y c e u e e h h e f o v t E e t r ) u a r v F ) c q c r y i e r t i e n a p e e l r t e e o u c t s s t y D D @ n r t s s e s d e n l n s u e e i i e b o o o i g e e : / e o e / n s s f s c o u n n p e r / i ( y y r p w ( t t s i e f t a a - d m r / n N o o s s N i f c s r i l t t 1 e a ' e l ) u u o , ) r n u a a t l h i i i 7 b i c a e o o r f C o e g l t v i e a k n n 2 u l ' d t r : b e c : g l e e f s s e g g - g s d e e t r a i a y d i 3 a t t e e Y m h t m Y s i c w s C t t 1 l d o h n r w a e b p t c r s a a i e e o o - o d e c i i o a e e e t t l t r 6 g r c r t l l L t i r r c s : e l t I E 2 e a T y o l e ? g e t e a u b S F - t s n e p i a t n d i i v e b p o R F 6 o s c r t r n d ' W s . f v e x e t G : 1 e m . e g d s e , i e d p a , : ( l s o g , r ' c d i u / v u ) r i e E d a a a r p s p h a s : o g s o s n n t c t e d c l L o r e f / t n s c l d e e : s a h e e m / d x d e c r i r t e a t e l x S o r e w y k w f t / / o e d s ' / o f x e c i p e a o i e e n d u e s u g @ r u w y t t y r f t t l b r g v m i o h t s i c c 2 w e c E u l m i e t u p o c c / / 0 h d o n n e u a c n h r t r t a a l l 2 e n c t t r i e t h o s o n t e e 3 n t s r u s g l s t f e j e t e t t - a i y # e e . a / h i e n s a . s s 1 t s d p n n c t L e r E c d u l e e 2 h k e t c c t o E s l t p o n n - e r : e r m - A t e y p u c c 1 t r y r S C c a o o p r r 9 c o s t p e A M c t n u r e y y . e u b t n - E e r d t . p p r a p h h o / e v r o e a t t t u p t t t l w 1 s t n t m d w / / i t o t t e a . e i i h a i s l l f o r p p c t l 3 r f c e i g . i i i m t s s e s - v i l i l v v c a i : : r e a S e c F n t d e e a t n / t n n e r a r o a a a / / t i g / o c d p . t o n b l s c c e c l e n r t e n - o . a a a o e f l y s e D t p u f j n n r l u t f y p e m o i i r t r p t t e l r s . t c b s e o e a a n y e o . u e y r f o e l l e w n r - l r r o s i u d o o w r o c g s o i - u u F t r o u u s e r r / t g t 2 c o m p p . n k y d a y 1 a c u o w . e e e p o n - g e n r o . . w b t n d n 2 r s d g r a a y . a a o 0 e s a a k w w t : o t l t 2 e f t n s s h r e o i 2 ? u i i e . . i g - n c . l o z n l l s / l e e p l n a c d d d e s d y , t r a a c o - ) f i y s s e n d . i a o p . . r a s n t j j t t c Y s f i p p i e a o u o t n / / f n u e u h g f p i t d n a u r c a m , d t t l i a l u i h l v t o s t n e c k e u t o g h e p w a y i e e i . n . b n p a , . e t w p m h s e e . m l b d a a c s k . g j r p o u n d . Webサーバの設定: Nginxのインストール a v p i t / i e n t s c t / a n l g l i n n x g / i s n i x t e s - a v a i l a b l e / c a n t a l o u p e . a w s . l d a s . j p 設定 ...

2023年9月20日 · 11 分 · Nakamura