# HG changeset patch # User Sebastien Jodogne # Date 1719312856 -7200 # Node ID e1f7f1e2d1483f834181396ec89a6932660d7cae # Parent 202b378001f0f46b7dc2aed75c2b6c5be0f53036 document AWS_EC2_METADATA_DISABLED diff -r 202b378001f0 -r e1f7f1e2d148 Sphinx/source/plugins/object-storage.rst --- a/Sphinx/source/plugins/object-storage.rst Tue Jun 18 13:45:39 2024 +0200 +++ b/Sphinx/source/plugins/object-storage.rst Tue Jun 25 12:54:16 2024 +0200 @@ -10,19 +10,20 @@ ------------- Release notes are available `here -`__ - +`__. + Introduction ------------ -These 3 plugins enable storing the Orthanc files in `Object Storage `__ -at the 3 main Cloud providers: `AWS `__, -`Azure `__ & -`Google Cloud `__ +These 3 plugins enable storing the Orthanc files into `object storage +`__ at the 3 public +cloud providers: `AWS `__, `Azure +`__, and +`Google Cloud `__. -Storing Orthanc files in object storage and your index SQL in a -managed database allows you to have a stateless Orthanc that does -not store any data in its local file system which is highly recommended +Storing Orthanc files in object storage and your index SQL in a +managed database allows you to have a stateless Orthanc that does not +store any data in its local file system, which is highly recommended when deploying an application in the cloud. @@ -39,8 +40,9 @@ These plugins are used to interface Orthanc with commercial and proprietary cloud services that you accept to pay. As a consequence, -the Orthanc project usually doesn't freely update them or fix them unless -the requester purchases a support contract e.g. at `Orthanc Team `__. +the Orthanc project usually doesn't freely update them or fix them +unless the requester purchases a support contract, e.g., at `Orthanc +Team `__. Although you are obviously free to compile these plugins by yourself (instructions are given below), purchasing such support @@ -91,6 +93,12 @@ The **UseTransferManager** configuration is used to select the `Transfer Manager `__ mode in the AWS SDK client. This option was introduced in version 2.3.0. If set to false (default value), the default "object" mode is used. +**Important:** On Microsoft Windows, it is recommended to set the +environment variable ``AWS_EC2_METADATA_DISABLED`` to ``true`` to +speed up the initialization of the plugin. The reasons are explained +in the `AWS official documentation +`__. + .. _minio: @@ -209,7 +217,7 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ When the ``HybridMode`` is set to ``WriteToFileSystem``, it is sometimes useful to move old files -to the object-storage for long term archive or to `pre-fetch` files from object-storage to file +to the object-storage for long term archive or to "pre-fetch" files from object-storage to file system for improved performances e.g when before opening the study in a viewer. When the ``HybridMode`` is set to ``WriteToObjectStorage``, it is useful to move file from the @@ -236,12 +244,12 @@ The **StorageStructure** configuration allows you to select the way objects are organized within the storage (``flat`` or ``legacy``). Unlike the traditional file system in which Orthanc uses 2 levels -of folders, object storages usually have no limit on the number of files per folder and +of folders, an object storage usually has no limit on the number of files per folder and therefore all objects are stored at the root level of the object storage. This is the -default ``flat`` behaviour. Note that, in the ``flat`` mode, an extension `.dcm` or `.json` +default ``flat`` behavior. Note that, in the ``flat`` mode, an extension ``.dcm`` or ``.json`` is added to the filename which is not the case in the legacy mode. -The ``legacy`` behaviour mimics the Orthanc File System convention. This is actually helpful +The ``legacy`` behavior mimics the Orthanc File System convention. This is actually helpful when migrating your data from a file system to an object storage since you can copy all the file hierarchy as is. @@ -332,7 +340,7 @@ The format of data stored on disk is therefore the following: -- **VERSION HEADER**: 2 bytes: identify the structure of the following data currently `A1` +- **VERSION HEADER**: 2 bytes: identify the structure of the following data currently ``A1`` - **MASTER KEY ID**: 4 bytes: a numerical ID of the KEK that was used to encrypt the DEK - **EIV**: 32 bytes: IV used by DEK for data encryption; encrypted by KEK - **EDEK**: 32 bytes: the DEK encrypted by the KEK. @@ -348,11 +356,11 @@ openssl rand -base64 -out /tmp/test.key 32 -Each key must have a unique id that is a uint32 number. +Each key must have a unique id that is a ``uint32`` number. .. highlight:: json -Here's a sample configuration file of the `StorageEncryption` section of the plugins:: +Here's a sample configuration file of the ``StorageEncryption`` section of the plugins:: { "GoogleCloudStorage" : {