Overview# I had the opportunity to use IIIF manifest files stored in mdx.jp object storage from NestJS, so here are my notes.
Background# After a quick check of mdx.jp object storage, it appeared that CORS settings could not be configured, making it difficult to use IIIF manifest files uploaded to mdx.jp object storage directly from other viewers.
/en/posts/ad76f58db4e098/#注意(corsの許可)
Therefore, the approach is to load the IIIF manifest files uploaded to object storage from NestJS and return them.
Source Code# The source code is available in the following repository.
https://github.com/nakamura196/nestjs-iiif
Prepare the following environment variables. Since we are using mdx.jp object storage, set S3_ENDPOINT to https://s3ds.mdx.jp .
S S S S S 3 3 3 3 3 _ _ _ _ _ E R A S B N E C E U D G C C C P I E R K O O S E E I N S T T N = _ _ _ T u K A N = s E C A h - Y C M t e _ E E t a I S = p s D S x s t = _ x : - x K x / 1 x E / x Y s = 3 x d x s x . m d x . j p
Then, using @aws-sdk/client-s3, download and return the IIIF manifest file from the object storage as follows.
i i i i d @ e } m m m m o I x p p p p t n p p c } a } s o o o o e j o r o s r r r r r n e r i n t } y c i } c c c c f } c r c t t t t v c t v s h ) n o f o o o o o o e / . t a t i r e f c } ; c n t n n n n r c n t s { { { c a c t r s e n o r , s ( h s s s s h s u 3 o b l e u . g d r e a s g t ! r t t t t a u t r . I S R a n l a c s i p c d c e e b o w n n s n 3 e s f e s r t 3 o o e e c c t b u w c r s c a k f e j C a i ( s e o C n i P n e r J u c o e t h i s i J r e l d d g ) a r l : n a t s e s c k n m s r u t . l S v c i a o ( S d ( i t t i s t o k e e m p e n p e O i t e b t ) 3 o ) e p : h a K A n e t w a o a k ( u C N c a n l e ; S n n r S l e c F t ) n n m s c s o . e b t e n e l { t o p t s y c i E d s : o h n p . l , v r y c r y : I e l = { r e = n ( t a t e } v = e o l d s e r = U s c e r s G f i s s c e { : s ( p o = r i t h n s } e f r c 3 n s e : K k r r n e n u t e t r o e C e . s p e e o ( e a s t c n ( f O o m l w e s t r y y c ' w w p 8 h k = f r b m { i n . r o : : e S a o A u ) i o j ' e S v e u c s 3 G i n r n ; B l m e ' d n 3 . n e e p s s _ e t s r k u e c s o t C S v , s r t . B t e a f C ' t t t : l 3 . s o r e U O t . y o f o @ C r e i _ S . c i n C b h B [ f e n n o e n S e R 3 e e n v K j i o ] r t e m a v 3 n E _ n s g . E e s d s . e s m m ' C t G E E v s ) S T c . y = t c n t a ' ; l ( I N n . . : 3 _ t s r o t j n ; i { O D a S e _ N C 3 a [ e n ) s d e N P b 3 n P B A o C s ] a c ; / n , O l _ v r U M m l ; m a c } t I e A . o C E m i R ) t o ; N C S m K a e e ( m f T p C 3 i E i n n a { c m r , a E _ s T s d t d h o o t S S e _ ( . a u n m h S E < N n { s b n ' _ C a A o e l k ; ' s K R n M t B n e s @ t E E y E u d ; ) a y Y T > ; s c ( . w l _ _ e k c t s e I A { t e o o - D C t m S s ( , C i : m t d r E n a r k e S b n i / q S e u d n c u _ n c ) g l i K v k ; ( i r E i e ' e e Y r t u n d , o , t t n f - f m K - s o e e 8 3 r n y ' ' t : ) ; m ; a v k n a e y r y i c a } o b ) m l ; p e a s t . i ' b ) l ; e s t o r a g e s e r v i c e s ) Summary# I hope this is helpful for using IIIF manifest files stored in mdx.jp object storage.