🐈

OrthancのAmazon S3接続(MinIOエミュレーション)

2023/08/04に公開

検証環境

OS: Ubuntu20.04
Docker: 24.0.2
Docker Compose: v2.18.1(plugin)

OrthancのCloud Object Storage対応

https://book.orthanc-server.com/plugins/object-storage.html
公式ドキュメントによるとAWS S3,Azure Blob Storage,Google Cloudに対応しているとある。

準備

osimis/orthanc Docker Image

jodgne/orthancイメージには、Cloud Object Strage pluginが含まれないため、別途ソースからコンパイルするか、もう一つのDocker Image、「osimis/orthanc Docker Image」を使う必要がある。
コンパイルのハードルは高いので、osimis/orthancを使用することにした。
jodgne/orthancとの違いはpluginが自動で有効とはならず、有効・無効を環境変数や設定ファイルorthanc.jsonで定義する必要がある点。
jodgne/orthancイメージで用いたorthanc.jsonはそのまま使える。

docker-compose.yml
osimis-orthanc:
    image: osimis/orthanc:22.6.1
    container_name: orthanc-sv
    ports:
      - 50444:50444
      - 18042:18042
    volumes:
      - ./orthanc_config/orthanc.json:/etc/orthanc/orthanc.json:ro
      - ./orthanc_data:/var/lib/orthanc/data
      - ./orthanc_export:/var/lib/orthanc/export
    environment:
      - STONE_WEB_VIEWER_PLUGIN_ENABLED=true
      - TZ=Asia/Tokyo
    depends_on:
      postgresql:
        condition: service_healthy

MinIO

公式ドキュメントにMinIOでのエミュレーションが紹介してあったので、試してみる。
https://book.orthanc-server.com/plugins/object-storage.html#id16
docker-compose.ymlに以下の内容を追加

docker-compose.yml
minio:
    image: minio/minio:latest
    container_name: minio
    command: -c "/opt/bin/minio server /export --address :9000 --console-address :9001"
    entrypoint: sh
    volumes:
      - ./minio_data:/export
    ports:
      - 9000:9000
      - 9001:9001
    environment:
      - MINIO_ROOT_USER=minio
      - MINIO_ROOT_PASSWORD=password

orthanc.jsonに以下の設定を入れる。

orthanc.json
 "AwsS3Storage" : {
    "BucketName": "test-bucket",
    "Region" : "ap-northeast-1",
    "Endpoint": "http://minio:9000/",
    "AccessKey": "minio",
    "SecretKey": "password",
    "VirtualAddressing" : false
  },

MinIOの初期設定

MinIO管理画面http://your_host:9001/にアクセスし、ID/passwordにはdocker-compose.ymlファイルに指定した環境変数MINIO_ROOT_USER/MINIO_ROOT_PASSWORDを入力しログインする。
左側メニューの「Buckets」を選択し、Bucket画面で「CreateBucket」を押下する
minio menu
「Bucket Name」にorthanc.jsonで指定した内容を設定し、「Create Bucket」を押下する
minio create bucket
続いて、左側メニューの「Settings」を選択し、サブメニューの「Region」を選択する。
「Server Location」にorthanc.jsonで指定した内容を設定し、「Save」を押下する
minio_set_region

確認

Dockerコンテナを再起動し、DICOMをOrthancにアップロードした際、MinIO管理画面の「Object Browser」でファイルが確認できる。
minio_object_browser

Discussion