Storage Properties - dcm4che/dcm4chee-arc-light GitHub Wiki

Overview

Any storage configured in archive requires certain basic storage specific properties to be configured for it. As storages can be of different types (eg. filesystem, S3), corresponding storage properties configuration is required for each specific storage.

Storage Properties Configurations based on Storage Type

Filesystem Storage

Note : These filesystem storage properties are available only until archive version 5.30.0. Version 5.31.0 onwards, the storage properties are replaced by individual fields on the storage descriptor itself.

This is the most commonly used type of storage system used in archive's default configuration used for storing DICOM objects.

Properties Default Possible values Notes
pathFormat {now,date,yyyy/MM/dd}
/{0020000D,hash}
/{0020000E,hash}
/{00080018,hash}
DICOM files stored to current date location grouped per study / series.
Hashed values of Study / Series / SOP UIDs used for folders / DICOM objects.
checkMountFile NO_MOUNT Applicable mainly for NFS / External file systems, wherein the user needs to first create file with specified name (NO_MOUNT) on the NFS / External file system before the file system is mounted.

NO_MOUNT is just a pre-configured value, user may choose to use any other value, but only has to ensure that configured value matches with the file name created on the mount.

Used by the archive for each DICOM object storage (write operation) to check if the mount exists before writing out.
fileOpenOption CREATE_NEW Standard Open Options Specified default applied in absence of configuration.
altCreateDirectories true By default, creates a directory by creating all nonexistent parent directories first.

If set to true, creates a new directory by checking for the existence of the file. Optionally, uses list of file attributes to set atomically when creating the new directory.
retryCreateDirectories 0 No. of times the creation of directories is retried.
onFileExists NOOP

FAILURE
NOOP : does not store the object to the Storage, but adds a reference to the existing file for the instance in the database.

FAILURE : storage fails with FileAlreadyExistsException

On no configuration of onFileExists property, creates random 8 hex-digits file name, preserving the previous behavior.
Available since 5.29.3

Notes for pathFormat Alternatives

File system storage may also be used :

  • To store instance metadata used by 3rd party systems for post-processing workflows or .
    pathFormat={0020000D}-{0020000E}.json
    
  • Prefetch WADO objects on an intermediary cache server to be used by workstations
    pathFormat={0020000D}/{0020000E}/{00080018}/{00081160}.jpeg 
    

Cloud Storage

Storage URI: jclouds:<endpoint>

Replace <endpoint> above with URL corresponding to your cloud storage settings.

Properties Configurable Values Notes
identity Configure access-key of your S3 storage
credential Configure secret-key of your S3 storage
container Configure bucket-name of your S3 storage
containerExists true
false
optional, default: false
jclouds.trust-all-certs true
false
optional, tested: true
jclouds.relax-hostname true
false
optional, tested: true
jclouds.strip-expect-header true
false
optional, tested: true
streamingUpload true
false
optional, default: false
indicates if the cloud storage backend supports streaming and if it shall be used.
maxPartSize default: 5G.
If streamingUpload is not supported, maximum object size (Content-Length) that can be uploaded in single-part / multi-part payload.
synchronizeUpload true
false
optional, default: false
Synchronize uploads on S3.

S3 Storage

Storage URI: jclouds:s3:<endpoint>

Replace <endpoint> above with URL corresponding to your S3 storage settings.

Properties Configurable Values Notes
identity Configure access-key of your S3 storage
credential Configure secret-key of your S3 storage
container Configure bucket-name of your S3 storage
containerExists true
false
optional, default: false
jclouds.trust-all-certs true
false
optional, tested: true
jclouds.relax-hostname true
false
optional, tested: true
jclouds.s3.virtual-host-buckets true
false
optional, tested: false
jclouds.strip-expect-header true
false
optional, tested: true
streamingUpload true
false
optional, default: false
indicates if the cloud storage backend supports streaming and if it shall be used.
synchronizeUpload true
false
optional, default: false
Synchronize uploads on S3.

EMC-ECS S3 Storage

Storage URI: emc-ecs-s3:<endpoint>

Replace <endpoint> above with URL corresponding to your EMC-ECS S3 storage's settings.

Properties Configurable Values Notes
identity Configure access-key of your EMC-ECS S3 storage
credential Configure secret-key of your EMC-ECS S3 storage
container Configure bucket-name of your EMC-ECS S3 storage
containerExists true
false
optional, default: false
streamingUpload true
false
optional, default: false
indicates if the cloud storage backend supports streaming and if it shall be used.
emc-ecs-s3.URLConnectionClientHandler true
false
optional, default: false

Amazon S3 Storage

Storage URI: jclouds:aws-s3:https://<bucket-name>.s3.<aws-s3-bucket-location>.amazonaws.com

Replace <bucket-name> and <aws-s3-bucket-location> in the above URL with values corresponding to your Amazon S3 storage settings.

Properties Configurable Values Notes
identity Configure access-key of your Amazon AWS S3 storage
credential Configure secret-key of your Amazon AWS S3 storage
container Configure bucket-name of your Amazon AWS S3 storage
containerExists true
false
optional, default: false, tested: true
jclouds.s3.virtual-host-buckets true
false
optional, tested: true
jclouds.trust-all-certs true
false
optional, tested: true
jclouds.relax-hostname true
false
optional, tested: true
jclouds.s3.virtual-host-buckets true
false
optional, tested: true
jclouds.strip-expect-header true
false
optional, tested: true
streamingUpload true
false
optional, default: false
indicates if the cloud storage backend supports streaming and if it shall be used.
⚠️ **GitHub.com Fallback** ⚠️