「画像コレクション管理」ツールの使い方ガイド

概要 IIIFの機能を簡単に試すことを目的とした、「画像コレクション管理」ツールを作成しました。 https://pocket.webcatplus.jp https://pocket.webcatplus.jp/ 本ツールの使い方について紹介します。 コレクション管理 コレクションの作成 ダッシュボードで「新規コレクション」ボタンをクリック 必要情報を入力: コレクション名 (必須): わかりやすい名前を付ける 説明 (任意): コレクションの内容を説明 公開設定 : 公開/非公開を選択 「作成」をクリック コレクションの編集 コレクション一覧から編集したいコレクションの「⋮」メニューをクリック 「編集」を選択 情報を更新して「保存」 コレクションの削除 コレクション一覧から削除したいコレクションの「⋮」メニューをクリック 「削除」を選択 確認ダイアログで「削除」をクリック ⚠️ 注意 : コレクションを削除すると、含まれるすべてのアイテムも削除されます アイテム(画像)管理 アイテムの追加 方法1: ドラッグ&ドロップ コレクションページを開く 「新規アイテム」ボタンをクリック 画像ファイルをドラッグ&ドロップエリアにドロップ タイトルと説明を入力 「作成して編集」をクリック 方法2: ファイル選択 「ファイルを選択」ボタンをクリック アップロードしたい画像を選択(複数選択可) タイトルと説明を入力 「作成して編集」をクリック 方法3: URLから追加 「URLから追加」タブを選択 画像のURLを入力 「追加」をクリック 方法4: IIIF画像の追加 「info.jsonから追加」タブを選択 IIIF info.jsonのURLを入力 「追加」をクリック アイテムの編集 アイテム一覧から編集したいアイテムをクリック 編集画面で以下の情報を更新: 基本情報 : タイトル、説明、公開設定 位置情報 : 緯度、経度、場所の名前 詳細情報 : 帰属表示、権利情報 追加情報 : カスタムフィールド(作成年、作者など) 「保存」をクリック ...

2025年8月22日 · 1 分 · Nakamura

TEI/XMLファイルをS3互換のオブジェクトストレージでホストする

概要 TEI/XMLファイルをS3互換のオブジェクトストレージでホストする機会がありましたので、備忘録です。具体的には、mdx Iのオブジェクトストレージを対象にします。 https://mdx.jp/mdx1/p/about/system 背景 TEI/XMLファイルを読み込み、その内容を可視化するウェブアプリケーション(Next.js)を構築します。この時、ファイル数やサイズが小さい場合は、publicフォルダに格納していましたが、これらが大きくなった場合、別の場所でホストすることを考えました。 場所の選択肢は多々ありますが、今回はS3互換であるmdx Iのオブジェクトストレージを対象にします。 GUIを用いたオブジェクトストレージへのファイルアップロード オブジェクトストレージへTEI/XMLファイルをGUI経由でアップロードする方法も多々あります。その中で、これまではCyberduckを使用する方法や、GakunNin RDMを使用する方法などを紹介しました。 一方、今回の事例では、TEI/XML以外のコンテンツをDrupalで管理していました。そこで、Drupalとオブジェクトストレージを接続し、ユーザはDrupalの操作で完結できるようにしました。 Drupalとオブジェクトストレージの接続 以下のモジュールを使用します。 https://www.drupal.org/project/s3fs インストール後、環境設定のページ/admin/configから、S3 File Systemを選択します。 そして、アクセスキーや秘密鍵を登録し、さらにS3のバケット名を登録します。 またAdvanced Configuration OptionsのCustom Host Settingsにおいて、https://s3ds.mdx.jpを入力します。 これでオブジェクトストレージとの接続設定は完了です。 その後、各コンテンツタイプのフィード設定において、アップロード先として「S3 File System」を選択します。 また、今回はTEI/XMLファイルがアップロード対象となるため、「許可されている拡張子」として、xmlを入力します。 この結果、DrupalのGUIを介してアップロードしたTEI/XMLファイルが、mdx Iのオブジェクトストレージに格納されるようになりました。 (参考)DrupalのJSON:APIを用いたファイルの一括アップロード TEI/XMLの初期登録にあたり、Pythonを用いた一括登録を行いました。JSON:APIを用いたファイルの一括アップロードの方法は、以下の記事などが参考になりました。 https://www.drupal.org/node/3024331 一例ですが、以下のようなスクリプトで実現できました。 i i i f f f c m m m r r r l p p p o o o a o o o m m m s r r r s d d d d t t t d g t e e e e o l q A f f f f r j o t o d p e s s e b m i l # s # # # s s l # l l i g # c i e u u # f # w h h h # r i e q o n C _ o e e e o o o f e s f l p r i i e e e e f l u n v i i l i a D l エ s 認 l l g ロ g g t C r s l l フ l フ t a a a フ s s e m m i n d r f ン e 証 f f i グ i i l _ S f c e o ァ e ァ h d d d ァ p r e s i p p e i _ u . ド l 情 . . n イ n n l j h o s c R _ f c s # # s } : # s a = イ n イ f e e e イ o e i : p t m o o n t d p D ポ f 報 U P ( ン _ _ o s e g e s F t " o r e e d ル a ル o i r r r ル n s f r s p r r t _ o a R イ . ( S A s リ u r g o a i l r ト o { o f r s l r l _ f 名 m を p l s s s を s p i o t t : _ t l U ン J B E S e ク r e i n d n f f ー k s k _ e e f a f f " を e バ e e [ [ ア e o v n r ( e サ P ト S a R S l エ l s n = e _ . _ ク e e i t t l . " " " i . i { 取 イ n _ = ' ' ッ n e p t t g t s n イ A ( O s N W f ス p _ { r r s t ン n l e o u f h C A X s c l s 得 = ナ ( d C C プ = s r r ( l q e v ト L J N i A O ) ト = o u " s e e o を _ f s k r . e o c - e s e e リ f a s o o ロ e b i f l o d l ( の _ S A c M R : n r n = s s k 取 r . = e n c a n c C r ( l o モ i t e n n ー r . o n " o b m f o U B O P 認 E D f s l a { p s e 得 e D s n s d t e S E f s f s ー l a l t t ド e s s t フ a ) v R A N I 証 " e , m " o i n s R e _ c r e e p R x _ e . . ド e f e e q t e ( ァ d : e L S : _ ) = = { e C n o ( p U l r s f r n t F c t l D p で _ = . n n u a : f イ _ r ( E A E s = " o s n s o P f e r _ s t " - e o f R a 読 p h t t e t " ル d r 例 _ P N o o e : n e _ e n A . s f t - : T p k , U t み a f e - - s u フ ア o i ) U I D s s l r t . c l s L s p _ o = T o t e P h 込 t . a T D t s ァ ッ t d R ) P . . f e s e s o f e _ e o t k y " k i n t A . む h r d y i s _ イ プ e e L O g g . q e n t o ) B s n o e { p a e o y L b , e e p s . c ル ロ n = I e e D u l t a k : = A s s k n e p n n = p _ a a r e p p o ア ー v T = N t t R e f - t i S i e e " p " ( e B s ' d s ' o o d ッ ド r T e e U s . T u e r E o . n = : l : f N , A e r ( . ] s s e プ 失 u o n n P t U y s s e _ n s _ i " o S n b ) c i t ロ 敗 e s = v v A s S p _ q U _ t r c " c c C n u E a ' o = t ( = ー : ) . ( ( L . E e c = u R c a e s a a s S e u _ m ) p i u = ド g f " " _ p R " o e L o t s r p t r R i U e y ' o r 成 { e " D D B o N : d l s } u p f p i f F d R ( a ( a n l 2 功 r t { R R A s A e o t k s o _ l o _ ト , L f s ) p ' , 0 : e e s U U S t M " g s s i _ n t i n t ー } i p ] 0 s n e P P E ( E a = i . e e c s o c / o ク f / l f l h : { p v l A A _ , p = n g s s o e k a v k ン i j e : i = e f o ( f L L U p _ e s d . e t n e 取 e s _ c a i n " . _ _ R " l 2 r t i e t n i d n 得 l o p a f d l s D D U P L p i 0 e ( o # e _ o . _ 失 d n a t ' e e e R R S A } a c 0 s n = x r n a r 敗 , a t i a r n . U U E S / s a : p / こ = t e / p e : p h o t s a s P P R S u s t o t こ s v i s f i ) n t = m t A A N W s " i n o で 2 p n + p { i / / a h e a L L A O e : o s k ロ 0 o d j o c l n o c e } t _ _ M R r n e e グ 0 n . s n s e o c h a " u B B E D / s / . n イ : s a o s r _ d t m d ) s A A " " l e j c " ン e p n e f p e e e e _ S S ) ) o l s o , セ . i " . _ a / t n r c E E g f o o ッ t + , t t t { - t s o _ _ i . n k シ e j e o h t s ; , d U U n P " i ョ x s x k , y t e R R ? A } e ン t o t e p r f c } L L _ S s を n , n v e e i o " } f S 渡 " _ e } a l o { ) / o W す , r r / m e k r j r O e b { ' n i e s m R s o u a e s o a D p s u m s p n t } o e i e = o a = , n = d = s n p j s F } " e s i s e a / { l e / o . l { f f . n n s s f i . t o " t e i l s e d a ) e e e x e t : l n s t / u d a s } a s } m i " r _ " e o ) t c } n i o " _ c d ' c l e o e } o " k { i c e s s r , f _ d t a o t k a e = n f _ i r l e e s _ p d o a n t s a e ) . t e x t } " ) すでに対象コンテンツが作成済みで、例えばfield_fileといったフィールドにファイルをアップロードする目的で使用することができます。 ...

2025年5月24日 · 14 分 · Nakamura

MDX.jpのオブジェクトストレージに対するIPアドレス制限の実装方法

概要 MDX.jpのオブジェクトストレージに対するIPアドレス制限の実装方法を調べました。以下、動作確認を行なった上で、AIが記事を執筆しました。 はじめに 本記事では、MDX.jpが提供するDDN EXAScaler S3互換オブジェクトストレージサービスにおいて、特定のIPアドレスからのみアクセスを許可する設定方法について解説します。 オブジェクトストレージのセキュリティレイヤー DDN EXAScaler S3互換ストレージには、主に以下の3つのセキュリティレイヤーがあります: アクセスキーとシークレットキー :基本的な認証情報 バケットポリシー :バケットレベルでのアクセス制御 アクセス制御リスト(ACL) :オブジェクトレベルでのアクセス制御 この中で、IPアドレス制限を実装するには「バケットポリシー」を利用します。 バケットポリシーによるIPアドレス制限の設定手順 1. ポリシーJSONファイルの作成 まず、以下のようなJSONファイル(例:mdx.json)を作成します: { } " " ] V S e t { } r a s t i e o m n e " n " " " } " ] " " } : t S E P , A , R C " i f r c e o " : d f i t s n 2 " e n i o d " } 0 [ : c c o u i I 0 t i n r t p 8 " " p " " c i A - B : a D : " " e o d " ] 1 u l D s s " n d a 0 c " " N [ 3 3 : " r w - k A : " : : : e s 1 e l : L G " s : " " 7 t l { i e B { s S 1 2 " N o [ s t u " o 9 0 , a w " t O c : u 2 3 m " * B b k r . . e , " u j e { c 1 0 " ] c e t e 6 . , k c N I 8 1 e t a p . 1 t " m " 1 3 " e : . . , " 1 0 , [ / / 3 2 2 4 " " , ポリシーの主な要素: ...

2025年4月24日 · 5 分 · Nakamura

mdx Iのオブジェクトストレージに対するproxyサーバの構築

概要 mdx Iのオブジェクトストレージに対するproxyサーバの構築に関する備忘録です。 背景 mdx Iの利用手引きにおいて、以下のように説明されています。 https://docs.mdx.jp/ja/index.html#オブジェクトストレージ mdxが提供するS3データサービス(DDN EXAScaler S3 Data Service)で取り扱うAPI仕様を記載したDataDirect Networks社のマニュアルです。 Tipsのオブジェクトストレージの利用方法例 と合わせてご確認ください。 https://docs.mdx.jp/ja/_downloads/b5d961f2c152387fa10ed951d5278f47/S3 Data Services 5.2.7 API Reference Guide.pdf こちらをGoogle NotebookLMに読み込ませ、corsの実装状況について確認しました。以下が回答です。 回答 資料 でBucket CORS Featureが未実装 であることが明記されているため、EXAScaler Access S3 APIに対して、ウェブブラウザ上で動作するJavaScriptなどから直接、異なるオリジン (例えば、APIのエンドポイントとは異なるドメインで提供されているウェブサイトのJavaScript)を通してリクエストを行うと、CORS(Cross-Origin Resource Sharing)の問題が発生し、通常はリクエストがブロックされます 。 これは、ウェブブラウザのSame-Origin Policy というセキュリティ上の仕組みによるものです。異なるオリジンからのリソースへのアクセスは、サーバー側が明示的に許可しない限り制限されます。CORSは、この許可の仕組みを提供するものですが、EXAScaler Access S3においては、この機能がまだ実装されていないため、サーバー側からのCORSヘッダーなどのレスポンスがなく、ブラウザはクロスオリジンリクエストを拒否する と考えられます。 したがって、プロキシサーバー などを利用して、クライアントサイドのリクエストを一旦プロキシサーバーに送り、そこからEXAScaler Access S3 APIにリクエストを行うことで、オリジンが一致するように見せかけるなどの回避策が必要になる場合があります。プロキシサーバーは、APIからのレスポンスに必要なヘッダーを付与する役割を担うこともできます。 ただし、これはCORSの問題を回避するための一つの一般的な方法であり、他にもサーバーサイドでAPIを公開する際にオリジンを一致させるなどの方法も考えられます。重要なのは、EXAScaler Access S3 API自体がCORSの仕組みをサポートしていない ため、クライアントサイドから直接クロスオリジンリクエストを行う際には、何らかの対策が必要になるということです。 対策 理解が間違っている点もあるかもしれませんが、上記の回答から、mdx Iのオブジェクトストレージに対するproxyサーバの構築を行うこととしました。 構築したproxyサーバのリポジトリは以下です。 https://github.com/nakamura196/s3-proxy 例えば、以下で指定したバケット上のファイルにアクセスできます。 https://s3-proxy.vercel.app/public/CETEIcean.css 一方、以下が直接アクセスした例です。 https://s3ds.mdx.jp/satoru196/public/CETEIcean.css 前者では、以下のようなレスポンスヘッダーが確認でき、CORSの設定がなされていることが確認できます。 a a c c c d e s s x x x c g a o o a t e t - - - c e c n n t a r r p v v e : h t t e g v i o e e s e e e : : e c w r r s 0 - n n r t e c c - c t t S W : - r e e c o - - u / t e l l o n e t n “ V r d - - n t n y , 3 e a - c i t r c p d r n b a d r o o e 2 5 c s y c : o l d : 3 c e p : h l : i - l o e h - n t M p r E : n a p g e a s t x d l u : x r b - p M 1 l b t 8 s r I : o l b / 2 j e e S : w i r c 0 s c s S i - c s 2 g u s a o , s 5 R r d r M i 1 i m 0 3 t : g a 3 D y : i x : K : z n - 1 Y b : a 1 L m d g : g a g e 2 M x m = 7 V - - 0 w a 1 , G i g 7 M 7 e 4 m T N = 2 u s 6 6 s / 3 9 t A 0 9 - I 7 4 r h 2 8 e g 0 6 v ” 0 5 a 0 9 l ; 2 i - d i 2 a n b t c 2 e l 8 u 6 d a e a S c u d b 0 D 6 o 2 m a i n s ; p r e l o a d 実装 Expressを用いて、以下のように実装しました。aws-sdkについては、AWS SDK for JavaScript v3に移行する必要があるようなので、この点はご注意ください。 ...

2025年3月23日 · 8 分 · Nakamura

GakuNin RDMのストレージに、mdx.jpのオブジェクトストレージを追加する

概要 GakuNin RDMのストレージに、mdx.jpのオブジェクトストレージを追加する方法です。 手順 mdx.jp mdx.jpのオブジェクトストレージの利用申請を行い、アクセスキーとシークレットキーを控えます。 GakuNin RDM S3 Compatible Storageを有効にします。 S3互換サービスとしてmdx S3DSを選択して、控えたアクセスキーとシークレットキーを入力します。 バケットの一覧が表示されるので、接続したいバケットを選択します。 結果として、「ファイル」メニューからアクセスできるストレージに、mdx.jpのオブジェクトストレージが追加されます。 今後、ドラッグ&ドロップにより、ファイルのアップロードなどを行うことができます。 まとめ GakuNin RDMとmdx.jpのオブジェクトストレージの接続にあたり、参考になりましたら幸いです。

2025年3月21日 · 1 分 · Nakamura

Omeka Sのファイルをmdx.jpのオブジェクトストレージに保存する

概要 Omeka Sのファイルをmdx.jpのオブジェクトストレージに保存する方法に関する備忘録です。 ベースとするモジュール Amazon S3との連携を可能にする以下のモジュールをベースとします。 https://omeka.org/s/modules/AmazonS3/ 本モジュールでは、Omeka Sで取り扱う画像や動画といったメディアのファイルをAmazon S3に保存するための拡張機能を提供します。 一方、endpointの指定ができないため、mdx.jpのオブジェクトストレージなどを対象にすることはできませんでした。 モジュールのカスタマイズ 上述した背景を踏まえて、Amazon S3以外のオブジェクトストレージを利用できるように、モジュールをカスタマイズしました。カスタマイズした結果は、以下のリポジトリで公開しています。 https://github.com/nakamura196/Omeka-S-module-AmazonS3 なお、カスタマイズについては、エディタとしてCursorを使用し、s3互換のオブジェクトストレージにも対応したいという依頼をclaude-3.7-sonnetに提出し、その結果を反映しています。 結果、上記のモジュールを使用することにより、Omeka Sで登録したメディアが以下のようなURLでアクセス可能になりました。 https://s3ds.mdx.jp/<バケット名>/large/3e0a78e1cbc239f37cfff0e777c40c2f9b2f5c92.jpg 以下は、filesディレクトリを、mdx.jpに接続したCyberduckで表示した例です。 モジュールの設定内容は以下のとおりです。カスタムエンドポイントURLという項目が追加されており、https://s3ds.mdx.jpを指定することで、mdx.jpのオブジェクトストレージを利用できるようになりました。 なお、上記の画面キャプチャで表示されているとおり、mdx.jpのオブジェクトストレージにファイルが保存される設定をしても、現時点ではWrong region. Please use region of a bucket:と表示されてしまいます。この点は、今後修正予定です。 モジュールのインストール 今回フォークして作成したカスタムモジュールをインストールするには、以下の手順を踏む必要があります。 c g c c d i d o t m < A p モ c m o ジ l a s ュ o z e ー n o r ル e n が S i 格 h 3 n 納 t s さ t t れ p a て s l い : l る / デ / ィ g - レ i n ク t o ト h - リ u d > b e . v c o m / n a k a m u r a 1 9 6 / O m e k a - S - m o d u l e - A m a z o n S 3 A m a z o n S 3 Omeka Sにおいて、ソースからモジュールを使用するには、おおよそ共通して上記のような手続きが必要になります。 ...

2025年3月7日 · 1 分 · Nakamura

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

概要 mdx.jpのオブジェクトストレージとIIP Image(IIIF Image Server)を使ってIIIF画像を配信する試行の備忘録です。 以下の記事の続きです。 Docker版IIP Image 以下で、IIPImage serverのDocker Imageが公開されていましたので、こちらを使います。 https://hub.docker.com/r/iipsrv/iipsrv 以下の記事などを参考に、Dockerをインストールします。 https://qiita.com/Marron-chan/items/570c7c7baaae3b4d6b11 実行 前回の記事に倣い、以下のようにmdx.jpのオブジェクトストレージをマウントします。 s 3 f s s a t o r u 1 9 6 ~ / s 3 m o u n t p a s s w d _ f i l e = ~ / . p a s s w d - s 3 f s u r l = h t t p s : / / s 3 d s . m d x . j p u s e _ p a t h _ r e q u e s t _ s t y l e a l l o w _ o t h e r 注意点として、前回の記事から、-o allow_otherを追加しています。これを追加しないと、次のコンテナ起動時に以下のエラーが発生しました。 ...

2025年3月7日 · 6 分 · Nakamura

Alfrescoのファイルに対して、Archivematicaを使ってAIPを作成する

概要 Alfrescoのファイルに対して、Archivematicaを使ってAIPを作成する方法の一例です。 以下が成果物のデモ動画です。 https://youtu.be/7WCO7JoMnWc システム構成 今回は以下のようなシステム構成とします。複数のクラウドサービスを利用していることに特に意味はありません。 Alfrescoは、以下の記事を参考に、Azure上に構築したものを使用します。 Archivematicaとオブジェクトストレージはmdx.jpを使用し、分析環境はGakuNin RDMを使用します。 オブジェクトストレージへのファイルアップロード Alfrescoからファイルをダウンロード Alfrescoからのファイルダウンロードにあたっては、REST APIを使用します。 https://docs.alfresco.com/content-services/6.0/develop/rest-api-guide/ OpenAPIに準拠しており、以下などを参考にしました。 https://api-explorer.alfresco.com/api-explorer/ 例えば以下により、Alfrescoのユーザ名とパスワード、およびホスト名を環境変数から読み込み、メタデータの取得やコンテンツのダウンロードを行うことができました。 # f i i f # c r m m r l % o p p o % a % m o o m % s r r s d d d d d t t b e e e e a A f f f f t o r s / p n e s e e n i " A " s # l # s s s s } # c e s } s } _ " A " i g " A R " u s t e e g " A " u s } r b o w s } b n q 6 b C _ " r " e o e e e e ) r n e e ) d " r " f e " r e " r e r x x e " r " r e ) e i s i e ) s u 4 s l i " g " l . a 環 l l l l B e c l l e " g " t " g t " l l y c c t " g " l l s n . t l / e / i n A s f e d 境 f f f f a d o f f b デ s s _ ノ s u f : e e _ ノ s f p a m h f 0 i s i 0 e i l : v . n _ 変 . . . . " " " s e d . ' ' . " " u バ : m d e p i n ー : n r d = . r r r p s r p s r n ー : n o = . " " o r a f . " " 0 m t m 0 n t f e v v d 数 u p t _ u p t i n e h a a _ a a g ッ e a l r f o ド o n i _ e e e t e e t e e o ド o u _ u o n y k o i _ s p _ p s p _ t _ r r e の o の s a a d s a a c t d e c u d c u ( グ s t f i d I d s c f d s s t l t l t d の d t f d r u s _ e p l d i a c o o c : _ e b r 読 t 取 e s r e e s r 認 i _ a c t e c t s 情 s a . n d e D e : t " e p p u r f u r f u e コ e p " e l t e d d e e e z t o r r o ( s o b み e 得 r s g b r s g 証 a c d e h b e h e 報 a v t a f s で _ : { b o u h t o r e . r e . r s ン _ u { b " p a i n . b e h r t t r s c s o 込 n w e u " w e の l r e p o u p o l を g ( e ( t o _ ノ i s u n r e i n n q _ n q _ n _ テ i t s u : u = t r ( w u " " e e e o e s み v = o t g : o t ヘ s e r t r g t r f 出 e d r f a r n ー d ノ e g s l a m s u d u d n ン d _ e g t a s o r g : : . l b . l e ( r _ ( r _ ッ d s ' i ( " i , 力 i b " : o ド ー l ( e , d e e r e e N e e N o ツ p l ( u _ r ( u i ( i o 6 i f A ( o o d h " s d h ダ = e : z " : z す ( c o 🔍 k p d 情 ( ド f " e o . e s b o s b o d を ( a f " r p e = o t t " l o p a 4 p , P b = v s o 環 e " o ー n = a ヘ a m る s t s e r e 報 s 情 . A = r u r s t u n t u n e 取 s t . A l a q s p e フ e u y d e y I o e . = s 境 l : s を f t ' t ッ s t e t , e { y i I を t 報 t P s t a p s g e s g e I 得 t h t P , t u r . u ( ァ n t n _ n n v o v r g t 変 f t 作 " i { a i ダ e i s r : m , n d 取 r a I r = = i o . ( . ( d す r a I h e e p t b イ ( p b d c b e C l e r e o 数 . " " 成 { a p o ー l o s ) o e t ( 得 ) r リ e s f s n e " e " _ る ) ( r リ " s s a _ i ル b u o o r l ) r i t s = の u * : s l p n の f n a : p s v ( s す : g ク q e l e s x エ x エ c : s g ク : t p t p n 保 i t 3 t d 4 b i : b d e . 設 s " e s l ' 設 . " g t s a f e る e エ u l o _ e c ラ c ラ o t e エ s o h a a 存 n _ e e o e o e n g o 定 e s l i : 定 h : e メ i a l " l ノ t ス e f a f . e ー e ー n ノ r t ス o . n . t r 完 a p n s n デ s = v e s : r e f = c : e : ッ o g u f ー _ ト s . t o j p : p : t ー ) _ ト u g s d h y 了 r a v e t バ e T ( t . " , l . a f " a " セ n e e , ド h : t h ( r s t " t " e ド : h : t e e i , _ : y t = ッ r ' e g , l f u b t ' , d B s ー a } - I o " s e 3 _ o i , i , n I o " p t . r d " _ h F グ u A n e e . s 6 i B e a t ジ l " i n D s , . a 0 s n o o t D 出 s , u ( c n " a , d a 情 e L v t { n t e 4 o a { r s r ) ) n { o t g d ) t ( n { n { ( 力 t t u o a w t a l 報 ) F ( e ( a r e n s s i , : k d } { e e a ) s " s " s パ } { _ r n m b a { t s を _ ' n s r } n / i [ c d e e / " t r t . t . t e ス / p l t e " ) a e 出 U A v e g : c j c ' d 追 a y _ a u ( s u T y R y l a a , e ( ) ) ) 力 S L ( l e { o s a a 加 t } i l r , s i p e p f l t n o , : す E F ' f t s d o { c t の a : d f l ( m e q e , f h h t u a る R _ A . _ e e n e c * a デ . : r " ) e " u " r e t s か ' P L p h l ( ' n e " : ー i { e : o : e : n e a p ど ) A F a o f c , c p タ t v s s u s o s d u f う S _ s s . r o t d e a t c u t " t " d c e t i か S T s t p e d ' i m l r o r : t E r e o r _ l W A w a d e ] c s u ) / l i x e _ / s p e O R o s e d , t ( e : a } m c q i a = a : R G r s n _ ) } p ) e e u d p s t D E d w t c = : " i o p e : i e h ' T ) o i r ) / u t s / l ) ) _ r a e N - t i t s - f , H i d l d o d " o " t d . O f } s e n e , n , r e h e S " . n e f , f e x T s e t ) a " a " a a i ' e n i : u m s m o u d s ) l c a l e e u l e t f o l t s e s t t r _ . d s - s : s p - s o p e } / a a u / ) k a ( ' p g g t p = s ) u e e _ u T s ) b " " p b r w . l : : a l u o d i t i e r e c " s h c ) d c / リ t : / o a ク r a e d l エ ( s l l e f ス e t f s ( r ト ) r r e ) e が } ) e s タ ) : s N c イ c o o ム o n / ア / e v ウ v , e ト e r し r s ま s i し i o た o n " n s } s / ) / 1 1 / / n n o o d d e e s s / / { { n n o o d d e e _ _ i i d d } } " / c o n t e n t " オブジェクトストレージにファイルをアップロード boto3と、オブジェクトストレージのENDPOINT_URL、ACCESS_KEY、SECRET_KEYおよびBUCKET_NAMEなどを使用して、ファイルのアップロード(とダウンロード)を行います。 ...

2025年1月26日 · 26 分 · Nakamura

DataverseのデータをArchivematicaで処理する

概要 DataverseのデータをArchivematicaで処理する流れを確認しましたので、備忘録です。 背景 ArchivematicaではDataverseのデータを入力する機能を提供しています。 https://www.archivematica.org/en/docs/archivematica-1.17/user-manual/transfer/dataverse/ 本機能について、以下の講演会で教えていただいたので、実際に試してみました。 https://www.kulib.kyoto-u.ac.jp/bulletin/1402322 Dataverse 以下の記事でも使用したDemo Dataverseを使用します。 以下のデータをアップロードしました。 https://demo.dataverse.org/dataset.xhtml?persistentId=doi:10.70122/FK2/IHQZL3 ここから画像データそのものと、JSONデータをダウンロードします。Metadataタブに移動し、Export MetadataからJSONを選択します。 以下はJSONファイルの一部ですが、metadataBlocksにメタデータ、filesに画像ファイルの情報が記載されています。 { } " } " ] m , f e " } i { } t c l a i " " " ] e " " " " " } d t d n f s l r v d d a a i a i { } { } { } { } { } { } { } " a e e a a " " " " " " " " " " " } " " " " t t s m e , , , , , , : b s r t t i p p f c f f s r m c , t c p f a i p e l " " " " " " " " ] " " " " ] " " " " ] " " " " ] " " " " " " " " e t s a a d e i i o r i t o d h " " a r u i B o l " d t m t v t m t v t m t v t m t v t m t v t m t v t m t v [ l r i s F " r d l n i l o o 5 e t v b e b l l n a : s y u y a y u y a { } y u y a { } y u y a { } y u y a " y u y a y u y a " i o e i : s U e t e e r t " c y a u a l e o " y " p l p l p l p l p l p l p l p l p l p l A p l p l p l p l : c n t l i R n e n s a D : k p l l t i A c : N " : e t e u e t e u " } " } e t e u " } " } e t e u " } e t e u r e t e u e t e u t " V e 2 s L a n d i g a s e u a i c c k a c N i C e N i C e a , a N i C e d , d N i C e d N i C e t N i C e N i C e " e : e " 5 t " m t l z e t " u " e r o a c s { m i [ a p l " a p l " u " " " " u " " " " " } a p l " a " " " " a " " " " a p l " s " " " " a p l " s a p l " a p l " n d r : 1 e : e T y e I a 7 m : " D n t e " e t m l a : m l a : t t m t v t t m t v e m l a : t t m t v t t m t v m l a : D t m t v m l a : m l a : m l a : a " 1 s 4 n " y T " d F 2 " : a D i s : " a e e s e e s h y u y a h y u y a x " " " e e s a y u y a a y u y a e e s e y u y a e e s a e e s e e s k : , i { 7 t " : p y : e i f : " t a o s : t " " s " " " s [ o p l p l o p l p l p s t @ " " s [ s p l p l s p l p l " " s [ s p l p l " " s [ n " " s " " " s " a o 2 I h e p n l 0 M " a t n R { i : : " n : : " r e t e u r e t e u a c e t : : " e e t e u e e t e u : : " c e t e u : : " d : : " N : : " 2 m f n 4 d t " " e 5 t e 8 { D 7 " e D e " o : a : N N i C e A N i C e n h r y : t N i C e t N i C e : r N i C e : : a : 0 u a I , " t n : " 3 i I a 5 2 : " a q C n " f k " t a a p l " f a p l " d e m p " t C a p l " C a p l " " t i a p l " " t H " f k " f 2 r l d : p a : 6 f d 8 " f : t u i " t a " a a r " m m l a : f m l a : e m N e d r " o m l a : o m l a : d r " p m l a : s r " u d a " a d a " 5 a s " s k " 5 i " b , 0 f e e t , i l p m u u c e e e s i e e s d e a " a u c n e e s n e e s s u c t e e s u u c m e l p m a l p - 1 e : " : a i " 6 e : 0 8 a " " s a t s r u t e o " " " s " l " " s " v " m : t e o t " " s " t " " s " D e o i " " s " b e o a p s r u t s r 0 9 , d m m J , r 7 a l 2 : t t l e i r h , m : : : " N i : : " h a : e a , m a : : " N a : : " n e , m o : : " M j , n n o e i r e e i 1 6 2 / u a P " - b 8 s 0 " i e , m a o p : a a : t l " " s p c : a c : a s p n : y e t i s , m a O , m - . 8 i d r g E : 1 a b e 2 " : o " i 1 r o { " f k t " f t u " : h e o t " f k t " f . c o V " f c r t i i , f i 1 j 1 : o a e G , c 0 , 5 2 n , t 9 " u a a " a i a a " p e h t t u N d a " a E d a " k r u a d a " F t o i t t D t 9 p 0 1 i 1 / " b 7 - 0 t i 6 , n u l p m o u l p s " t " t C n a a l p m m a l p a i n l s l p i " l e o i S e i " g 9 0 . 9 j I s e b 0 2 r M v " d t s r u n t s r : : t T p o d m t s r u a t s r m p d u D s r r , l s r v a p v " 3 . o 6 p m 3 3 a 1 5 u e e " h e i r " h e i / p h s n " e a e i r i a e i u t " e e e i s e " " e t o e , , 7 r . e a : b c - - e t " , o , m a : o , m / { : e : t , " s , m a l s , m r i , " s , m t d , " o s " 0 g j g g / 5 b 1 0 a , r i , r i r / / a : e i , " e i a o : c i V , r i , 1 / p " e / c e 9 1 d N t { A t o / U / c t t : t t . n r t D o u t 2 1 g , " d f 3 " - a a i S f i r w n s t { C i S C i 1 " { i i a c " " 2 0 " , e 0 b , 1 t m v a f v . w i c " o v a { o v 2 , p v t a , / . , m 2 5 9 a e e t i e o w v h , n e t n e 6 t e a b F 7 o 1 c " " " " o l " r . e e t " o t " 3 i " s u K 0 - 9 f , , , , r i , g g r m a , r a , @ o , e l 2 1 d 1 0 u a / r s a c u c g n t a / 2 a 0 2 " t 0 i i . t " t m V " r I 2 t f 1 i 5 d t o N E a a y H / a d 9 o 7 . y r a m i l " Q F v 2 1 n z a g m a l u , Z K e 6 0 " h c / e i . e L 2 r d f , 3 f O " l c " 3 s c d y o r , " o , I e " 2 9 n T g , m B H - , 6 6 t o a " 7 Q o d " o k n J Z r c , l y i V L g " o o z Q 3 : g " a S / 1 y , t " B 9 / i , 7 4 " o J 8 , n V 1 " Q 5 S 4 " 8 , 2 0 d - 6 3 7 3 3 5 3 3 e a 7 c " , データの準備 Dataverseのサンプルデータは以下に格納されています。 ...

2025年1月21日 · 21 分 · Nakamura

mdx.jpのオブジェクトストレージに保存したIIIFマニフェストファイルをNestJSから利用する

概要 mdx.jpのオブジェクトストレージに保存したIIIFマニフェストファイルをNestJSから利用する機会がありましたので、備忘録です。 背景 mdx.jpのオブジェクトストレージに関して、簡単に確認したところ、corsの設定ができず、mdx.jpのオブジェクトストレージにアップロードしたIIIFマニフェストファイルを他のビューアから利用することは難しいようでした。 /ja/posts/ad76f58db4e098/#注意(corsの許可) そこで、NestJSからオブジェクトストレージにアップロードしたIIIFマニフェストファイルをロードして返却します。 ソースコード 以下のリポジトリからご確認いただけます。 https://github.com/nakamura196/nestjs-iiif 以下のような環境変数を用意します。mdx.jpのオブジェクトストレージを使用するため、S3_ENDPOINTに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 そして、@aws-sdk/client-s3を利用して、以下のように、オブジェクトストレージ上のIIIFマニフェストファイルをダウンロードして返却します。 ...

2024年12月1日 · 6 分 · Nakamura

Archivematicaのtransferにおいて、processing_configを使う

概要 Archivematicaのtransferにおいて、processing_configの使用方法について説明します。 背景 Archivematicaのtransferにおいて、processing_configを選択することができます。以下では、「automated」「default」「mdx」の3つから選択できることがわかります。 これは、「Administration」メニューにおける「Processing configuration」において設定することができます。 例えば以下は、mdx.jpのs3互換ストレージとやりとりすることを前提とした設定例です。 以下のように、「Store AIP location」に対象ストレージを選択することで、このprocessing configurationを選択した際には、当該ストレージにAIPが保存されることになります。 APIからの利用 APIからもこの設定を利用することができます。 以下のBETA版として提供されているものになりますが、/api/v2beta/packageを利用することができます。 https://www.archivematica.org/en/docs/archivematica-1.16/dev-manual/api/api-reference-archivematica/#package processing_configオプションを設定することで、APIからの利用においても、入力データごとに、AIPやDIPの出力フォルダを変更することができます。 まとめ Archivematicaの利用にあたり、参考になりましたら幸いです。

2024年11月19日 · 1 分 · Nakamura

YOLOv11xと日本古典籍くずし字データセットを用いた文字の検出モデルの構築

概要 YOLOv11xと日本古典籍くずし字データセットを用いた文字の検出モデルの構築を行う機会がありましたので、備忘録です。 http://codh.rois.ac.jp/char-shape/ 参考 過去に、YOLOv5を用いて同様のことを行いました。以下のspacesで動作デモや学習済みモデルをご確認いただけます。 https://huggingface.co/spaces/nakamura196/yolov5-char 以下は、「国宝 金沢文庫文書データベース」の公開画像に対する適用例です。 YOLOv11を用いることで、文字検出の精度向上を狙うことが目的です。 データセットの作成 「日本古典籍くずし字データセット」をダウンロードし、yoloで求められる形式に整形します。 形式は以下などで確認することができます。 https://github.com/ultralytics/hub/tree/main/example_datasets/coco8 画像のサイズを1280x1280に設定 以下のUltralytics HUBを使用しました。 https://hub.ultralytics.com/ 以下が学習結果です。 テストデータに対して適用したところ、良い精度がでる画像データ(例:「『源氏物語』(東京大学総合図書館所蔵)」)もあれば、 あまり良い精度がでない画像データ(例:「国宝 金沢文庫文書データベース」)もありました。 画像のサイズを640x640に設定 エポック数が10の場合 エポック数が10の場合は、エポック数が10の場合、学習が完全に収束していない可能性がありました。 一方、エポック数が少ないにも関わらず、テストデータに対しては、1280x1280のものより良い結果を示すようでした。 エポック数が100の場合 f # m # m r o o o Y d デ d m O e ー e L l タ l d e # b u O セ . a p a l v = ッ t t o i t t 8 ト r a c m c r の Y と a = h g h a 分 O ト i ' s s = l 類 L レ n / = z 2 y モ O ー ( h 1 = 4 t デ ( ニ o 0 2 i ル ' ン m 0 2 c を y グ e , 4 s ロ o 設 / , ー l 定 m i ド o d m 1 x p 1 u o x s r . e t p r t / Y ' y O ) o L l O o # / c N h a a # n r # o s # バ サ _ エ ッ イ 6 ポ 入 チ ズ 4 ッ 力 サ の 0 ク 画 イ 分 _ 数 像 ズ 類 s サ ( モ p イ オ デ l ズ プ ル i シ t ョ / ン d ) a t a . y a m l ' , # デ ー タ セ ッ ト の パ ス バッチサイズが16(デフォルト)では、GPUメモリの使用率が低く、32に設定すると、OutOfMemoryErrorになってしまいました。 ...

2024年11月6日 · 5 分 · Nakamura

mdx.jpを用いてYOLOv11のクラス分類(くずし字認識)の学習を試す

概要 mdx.jpを用いてYOLOv11のクラス分類(くずし字認識)の学習を行う機会がありましたので、備忘録です。 データセット 以下の「くずし字データセット」を対象にします。 http://codh.rois.ac.jp/char-shape/book/ データセットの作成 yoloの形式に合致するようにデータセットを整形します。まず、書名ごとに分かれているデータをフラットにマージします。 # c | l a e s x s d p e o C f r l t a c # f # f s r i o s e " l o r i a . e u f t . s t f c o i # o s i e / p i l u f s h c _ d = u l s t p . u a d a t e p o r m t t a t g _ = u s c i a i i t a l d i t . o n k l o a / o i n f _ p n t e . n s * b r i f a t ( d c : e / ( t l i t i f i o t c i = q e l h n " r p ( h n d . e . u C s y s a p " m s e e o ( ( e r u . ( p = x p f f l a t . f l i y " i f c _ / i i f s i { l , t f d l t " t n o e e i a e ( { s g u , i r l t s " o ( t n s e a ) / u o { p o p / _ / : " t u f u u u * p d ) p t i t t t / a a [ u p l _ p _ * t t - t u e d u f . h a 2 _ t } i t i j ) s ] d _ r _ l p e i f t } f e g t r i o / i _ " " } l { l p / e { c e a { ) o l ) t c : u s h l t } , s p " } u , o / t u { _ e t f f x p i i i u l l s t e e t _ . } _ d s " o i p ) k r l = ) i T : t r ( u ' e / ) ' ) [ - 1 ] } " 次に、以下のようなスクリプトにより、データセットを分割します。 ...

2024年11月6日 · 34 分 · Nakamura

mdx.jpの1GPUパックとOllamaを使ってローカルLLMを実行する

概要 mdx.jpの1GPUパックとOllamaを使ってローカルLLMを実行する機会がありましたので、備忘録です。 https://mdx.jp/mdx1/p/guide/charge 参考 以下の記事を参考にしました。 https://highreso.jp/edgehub/machinelearning/ollamainference.html モデルのダウンロード ここでは、llama3.1:70bを対象にします。 ダウンロード完了後、以下のように選択可能となります。 使用例 以下の『渋沢栄一伝記資料』を使用します。 https://github.com/shibusawa-dlab/lab1 APIの利用 以下に記載がありました。 https://docs.openwebui.com/api/ 以下でJWTトークンとは別に、APIキーを発行します。 以下が実行例です。 i i t 朝 A u h } t d } r # p p m m e 来 P r e h a e r r p p x 少 I l a r t s レ i i o o t シ K d e a p ス n n r r ク E = e " " s " " ] o ポ t t t t = 風 Y r A C = m m n ン ( ( 邪 " s u o = o e s ス r r r j 気 = h t n { d s e の e e e s ナ t = h t 3 e s { } 表 s s q o ' ル " t o e 0 l a = 示 p p u n 六 ニ s p { r n 0 " g o o e 月 ヨ k : i t : e r n n s 十 リ - / z - s " " e s s t 四 晏 x / a T " " r c q e e s 日 起 x l t y l : o o u . . 、 x o i p l l n e s j 日 x c o e a [ e t s t s 八 " a n " m " e t a o 晴 時 l " : a : n s t n h : 3 t . u ( 風 洗 o " . " " p s ) ナ 面 s f a 1 u : o _ ) ク ヲ t " p : s s c シ ナ : B p 7 e f t o テ ス 8 e l 0 r " ( d 暑 、 0 a i b " 次 u e 気 後 8 r c " , の r ) 昨 、 0 e a , テ l 日 六 / r t キ , ニ 孫 a i ス 比 王 p { o ト h シ 宮 i A n は e テ ノ / P / 渋 a 少 神 c I j 沢 d ク 官 h K s 栄 e 加 又 a E o 一 r フ ハ t Y n の s ル 同 / } " 日 = ヲ 志 c " 記 h 覚 社 o , の e フ 員 m 一 a p 部 d 安 l で e 藤 e す r t 。 s 氏 i テ , 等 o キ 来 n ス d 訪 s ト a ス " を t 、 { a t = 十 h j 時 r s e o 大 s n 阪 } . 支 字 d 店 程 u 長 度 m に p 野 要 s 口 約 ( し d 、 て a く t 神 だ a 戸 さ ) い ) 杉 。 田 要 約 、 文 の 名 み 古 を 屋 改 行 清 せ 水 ず に 及 返 し 西 て 京 く だ 支 さ 店 い 長 。 句 中 読 川 点 を 、 適 其 宜 他 使 用 小 し 林 て く 、 だ さ 片 い 野 。 \ 、 n \ 前 n 原 { t 等 e ノ x 諸 t 氏 } ヲ " 伴 ヒ 嵐 山 ニ 抵 リ 、 三 軒 屋 ニ テ 午 飧 シ 、 船 ヲ 浮 ヘ テ 大 江 川 《 ( 堰 ) 》 ヲ 遡 ル 、 船 中 囲 碁 ノ 興 ア リ 、 嵐 山 ノ 緑 葉 少 シ ク 繁 茂 ニ 過 ル モ 両 岸 ニ ハ 山 花 咲 乱 レ テ 頗 ル 風 致 ア リ 、 午 後 四 時 過 玉 川 楼 ニ 帰 宿 ス 、 今 朝 、 尾 崎 司 法 大 臣 ノ 秘 書 黒 田 氏 来 ル 、 又 、 林 和 太 郎 氏 ( 桂 氏 ノ 父 ) 来 話 ス 、 午 前 十 時 ヨ リ 各 支 店 主 任 ト 共 ニ 嵐 山 ニ 抵 リ 三 軒 屋 ニ テ 午 飧 ス 、 後 、 大 江 川 《 ( 大 堰 川 ) 》 ニ 船 ヲ 浮 ヘ 、 午 後 四 時 帰 宿 ス 、 後 、 玉 川 楼 ニ 於 テ 晩 飧 会 ヲ 開 ク 、 種 々 ノ 余 興 ア リ 、 夜 十 時 散 会 ス 、 中 井 三 郎 兵 衛 氏 モ 来 会 ス ' ' ' 結果、以下が得られました。ただし、結果が返却されるまでに60s弱かかってしまいました。 ...

2024年11月4日 · 7 分 · Nakamura

Archivematicaにmdx.jpのオブジェクトストレージを追加する

概要 Archivematicaにmdx.jpのオブジェクトストレージを追加する機会がありましたので、備忘録です。 背景 以下の記事で、Amazon S3をArchivematicaの処理対象およびAIPの保存先に設定する方法を記載しました。 今回は、この手順をベースとしつつ、mdx.jpのオブジェクトストレージを接続してみます。 設定方法 以下のように設定します。 S3 Endpoint URLには、https://s3ds.mdx.jpを設定します。 Access Key ID to authenticateとSecret Access Key to authenticate withには、以下で得られるアクセスキーと秘密鍵を使用します。 結果 結果、以下のように、mdx.jpのオブジェクトストレージを入出力ストレージとして利用できるようになりました。これにより、AIPやDIPをmdx.jpのオブジェクトストレージに保存することができます。 補足 以下の記事で記載した方法を参考に、GakuNin RDMとmdx.jpのオブジェクトストレージを接続することができます。 これにより、GakuNin RDM上でAIPやDIPの確認が可能となります。これにより、GakuNin RDMのBinderHubを用いたAIPの分析や可視化が可能となります。 可視化例として、ArchivematicaのMETSファイルを人間に優しい方法で探索可能とするMETSFlaskの応用などが考えられます。 まとめ Archivematica, GakuNin RDM, mdx.jpなどの連携にあたり、参考になりましたら幸いです。

2024年10月25日 · 1 分 · 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

mdxのオブジェクトストレージを使用する(Cyberduckの利用)

概要 mdxのオブジェクトストレージを使用する機会がありましたので、備忘録です。 https://mdx.jp/ 料金 2024年度の料金は以下のようになっています。 https://mdx.jp/guide/charge 1GBあたり、0.01ポイント(円)/日となっており、おおよそ1GBあたり、0.3円/月となっています。 申請方法 & s3cmdを用いた使い方 以下の公式チュートリアル動画が参考になりました。 https://www.youtube.com/watch?v=IN_4NS9hO2Y Cyberduckを使う 上記の動画ではコマンドラインツールによるファイル操作方法が紹介されています。 ここでは、Cyberduckを使用して、GUIを使ってファイル操作を行います。 AWS S3に対するCyberduckの操作方法を以下の記事で紹介しています。以下の方法を参考に、mdxのオブジェクトストレージに接続してみます。 接続設定 「新規接続」から接続設定を行います。 「Amazon S3」を選択して、サーバに「s3ds.mdx.jp」を入力します。 そして、発行された「アクセスキーID」および「シークレットアクセスキー」を入力します。 バケットの作成 右クリック > 「新規フォルダ」でバケットを作成できます。 ファイルのアップロード 以下のいらすとやさんの画像を使用します。 https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNuMuIaXnIW5QJXkLiV1ojUeUiIwNQF1O0lp2LgG2LGJUbIU8j4bFAyLyKq3BiYp53p0Yc8AtMsEykJAQgEx4SJyFvKY4OyNeDBFopPb4lnV7_wtZNkr91qwj6-m-8s-sl1aadYMhrpuoI/s800/baby_asia_boy.png 「satoru196」フォルダにドラッグ&ドロップでアップロードすることができます。 上述した公式チュートリアルでも言及されていますが、このままでは以下のURLにアクセスしても、表示ができません。 https://s3ds.mdx.jp/satoru196/baby_asia_boy.png 以下のようなエラーコードが表示されます。 < < < < < < E s C M R H r c o e e E r r d s q s r o i e s u t r r p > a e I o > t A g s d r / c e t > > > c > I 0 e A d 0 s c > 0 s c . 0 D e . 0 e s . 0 n s < 0 i / 0 e D R 0 d e e 0 < n q 0 / i u 0 C e e 0 o d s 0 d < t 0 e / I 0 > M d 0 e > < s / s H a o g s e t > I d > ACLの変更 ファイルを右クリックして、「情報」をクリックします。 ...

2024年7月6日 · 1 分 · Nakamura

mdxでNDL古典籍OCRを実行する

更新履歴 2024-05-22 「Dockerコマンドを実行するユーザーをdockerグループに追加」を追記しました。 概要 mdxは大学・研究機関で共創する産学官連携のためのデータプラットフォームです。 https://mdx.jp/ 今回は、mdxの仮想マシンを使用して、NDL古典籍OCRを実行してみます。 https://github.com/ndl-lab/ndlkotenocr_cli プロジェクトの申請 今回、プロジェクトタイプは「お試し/Trial」を選択しました。 「お試し/Trial」では、1つのGPUパックが割り当てられました。 仮想マシンの作成 デプロイ 今回は、「01_Ubuntu-2204-server-gpu (Recommended)」を選択しました。 デプロイ前の画面では、以下のように設定しました。パックタイプを「GPUパック」、パック数を1としました。 公開鍵については、ローカルPCで以下のように作成しました。 c s d s h ~ - / k . e s y s g h e / n m d x その後に作成されたid_rsa.pubの内容を貼り付けました。 その後、仮想マシンのデプロイが完了するまで少し待ちます。 SSH接続のためのネットワーク設定 以下の動画を参考に進めることができました。 https://youtu.be/p7OqcnXBQt8?si=E5JtC-xnrc5ZQYo_ まず起動した仮想マシンのサービスネットワーク1のIPv4アドレスを控えておきます。 次に、ネットワークタグから「DNAT」を追加しました。「転送元グローバルIPv4アドレス」は自動入力され、「転送先プライベートIPアドレス」に先ほど控えておいたサービスネットワークのIPv4アドレスを入力しました。 次に「ACL」を追加しました。動画にならって、以下のように設定しました。 特定のIPアドレスからのみアクセスする場合、以下のように設定しました。 一方、セキュリティの観点から、無制限に任意のアドレスからのアクセスを許可するのはリスクが伴いますが、以下のように設定することで、任意のアドレスからssh接続できるようです。 接続を試す DATで追加した転送元グローバルIPv4アドレスを使用します。初期ログイン後、パスワードの変更が求められるので、変更します。 s s h m d x u s e r @ < D A T で 追 加 し た 転 送 元 グ ロ ー バ ル I P v 4 ア ド レ ス > - i ~ / . s s h / m d x / i d _ r s a VS Codeで接続する その後の操作は、必須ではありませんが、VS Codeの拡張機能である「Remote Explorer」を使いました。 ...

2023年8月29日 · 11 分 · Nakamura