annotate README.md @ 48:ff113c3561c5

coding style + doc
author Alain Mazy <am@osimis.io>
date Fri, 02 Apr 2021 09:46:41 +0200
parents 7ddd840563c9
children b40327079244
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
1 # README #
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
2
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
3 Orthanc object-storages plugin for main cloud providers (Google/Azure/AWS)
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
4
4
55ce49bf32b3 readme links to orthanc book doc
Alain Mazy <alain@mazy.be>
parents: 1
diff changeset
5 Check the [Orthanc book](https://book.orthanc-server.com/plugins/object-storage.html) for complete documentation.
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
6
5
Alain Mazy
parents: 4
diff changeset
7 ## info for developers ##
Alain Mazy
parents: 4
diff changeset
8
Alain Mazy
parents: 4
diff changeset
9 Here's a sample configuration file of the `StorageEncryption` section of the plugins:
Alain Mazy
parents: 4
diff changeset
10
Alain Mazy
parents: 4
diff changeset
11 ```
Alain Mazy
parents: 4
diff changeset
12 {
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
13 "GoogleCloudStorage" : {
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
14 "StorageEncryption" : {
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
15 "Enable": true,
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
16 "MasterKey": [3, "/path/to/master.key"], // key id - path to the base64 encoded key
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
17 "PreviousMasterKeys" : [
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
18 [ 1, "/path/to/previous1.key"],
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
19 [ 2, "/path/to/previous2.key"]
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
20 ],
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
21 "MaxConcurrentInputSize" : 1024 // size in MB
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
22 }
5
Alain Mazy
parents: 4
diff changeset
23 }
Alain Mazy
parents: 4
diff changeset
24 }
Alain Mazy
parents: 4
diff changeset
25 ```
Alain Mazy
parents: 4
diff changeset
26
Alain Mazy
parents: 4
diff changeset
27 ### Compile Google plugin ###
Alain Mazy
parents: 4
diff changeset
28
Alain Mazy
parents: 4
diff changeset
29 * `./vcpkg install google-cloud-cpp`
Alain Mazy
parents: 4
diff changeset
30 * `./vcpkg install cryptopp`
Alain Mazy
parents: 4
diff changeset
31 * `hg clone ...`
Alain Mazy
parents: 4
diff changeset
32 * `mkdir -p build/google`
Alain Mazy
parents: 4
diff changeset
33 * `cd build/google`
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
34 * `cmake -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]\scripts\buildsystems\vcpkg.cmake ../../orthanc-object-storage/Google`
5
Alain Mazy
parents: 4
diff changeset
35
Alain Mazy
parents: 4
diff changeset
36 ### Google plugin configuration ###
Alain Mazy
parents: 4
diff changeset
37
Alain Mazy
parents: 4
diff changeset
38 ```
Alain Mazy
parents: 4
diff changeset
39 "GoogleCloudStorage" : {
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
40 "ServiceAccountFile" : "/.../googleServiceAccountFile.json",
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
41 "BucketName": "test-orthanc-storage-plugin",
20
968eb1c78aed Added 'RootPath' configuration
Alain Mazy
parents: 15
diff changeset
42 "RootPath": "", // optional: folder in which files are stored (ex: my/path/to/myfolder)
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
43 "StorageEncryption" : {...},
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
44 "StorageStructure" : "flat",
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
45 "MigrationFromFileSystemEnabled" : false
5
Alain Mazy
parents: 4
diff changeset
46 }
Alain Mazy
parents: 4
diff changeset
47
Alain Mazy
parents: 4
diff changeset
48 ```
Alain Mazy
parents: 4
diff changeset
49
Alain Mazy
parents: 4
diff changeset
50 ## Azure Blob Storage plugin ##
Alain Mazy
parents: 4
diff changeset
51
Alain Mazy
parents: 4
diff changeset
52 ### Prerequisites ###
Alain Mazy
parents: 4
diff changeset
53
Alain Mazy
parents: 4
diff changeset
54 * Install [vcpkg](https://github.com/Microsoft/vcpkg)
Alain Mazy
parents: 4
diff changeset
55
Alain Mazy
parents: 4
diff changeset
56 ### Compile Azure plugin ###
Alain Mazy
parents: 4
diff changeset
57
34
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
58 On Linux:
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
59
5
Alain Mazy
parents: 4
diff changeset
60 * `./vcpkg install cpprestsdk`
34
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
61 * `./vcpkg install cryptopp`
5
Alain Mazy
parents: 4
diff changeset
62 * `hg clone ...`
Alain Mazy
parents: 4
diff changeset
63 * `mkdir -p build/azure`
Alain Mazy
parents: 4
diff changeset
64 * `cd build/azure`
Alain Mazy
parents: 4
diff changeset
65 * `cmake -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]\scripts\buildsystems\vcpkg.cmake ../../orthanc-object-storage/Azure`
Alain Mazy
parents: 4
diff changeset
66
34
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
67 On Windows:
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
68
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
69 * `.\vcpkg.exe install cpprestsdk:x64-windows-static`
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
70 * `.\vcpkg.exe install azure-storage-cpp:x64-windows-static`
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
71 * `.\vcpkg.exe install cryptopp:x64-windows-static`
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
72 * `hg clone ...`
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
73 * `mkdir -p build/azure`
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
74 * `cd build/azure`
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
75 * `cmake -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE="Release" ../../orthanc-object-storage/Azure`
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
76 * `cmake --build . --config Release`
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
77
7ddd840563c9 windows build for Azure plugin
Alain Mazy <alain@mazy.be>
parents: 20
diff changeset
78
5
Alain Mazy
parents: 4
diff changeset
79 ### Azure plugin configuration ###
Alain Mazy
parents: 4
diff changeset
80
Alain Mazy
parents: 4
diff changeset
81 ```
Alain Mazy
parents: 4
diff changeset
82 "AzureBlobStorage" : {
Alain Mazy
parents: 4
diff changeset
83 "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=xxxxxxxxx;AccountKey=yyyyyyyy===;EndpointSuffix=core.windows.net",
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
84 "ContainerName" : "test-orthanc-storage-plugin",
48
ff113c3561c5 coding style + doc
Alain Mazy <am@osimis.io>
parents: 34
diff changeset
85 "CreateContainerIfNotExists": true, // available from version 1.2.0 (not released yet)
20
968eb1c78aed Added 'RootPath' configuration
Alain Mazy
parents: 15
diff changeset
86 "RootPath": "", // optional: folder in which files are stored (ex: my/path/to/myfolder)
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
87 "StorageEncryption" : {...},
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
88 "StorageStructure" : "flat",
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
89 "MigrationFromFileSystemEnabled" : false
5
Alain Mazy
parents: 4
diff changeset
90 }
Alain Mazy
parents: 4
diff changeset
91 ```
Alain Mazy
parents: 4
diff changeset
92
Alain Mazy
parents: 4
diff changeset
93 ## AWS S3 Storage plugin ##
Alain Mazy
parents: 4
diff changeset
94
Alain Mazy
parents: 4
diff changeset
95 ### Prerequisites ###
Alain Mazy
parents: 4
diff changeset
96
Alain Mazy
parents: 4
diff changeset
97 * Install [vcpkg](https://github.com/Microsoft/vcpkg)
Alain Mazy
parents: 4
diff changeset
98
Alain Mazy
parents: 4
diff changeset
99 * compile the AWS C++ SDK
Alain Mazy
parents: 4
diff changeset
100
Alain Mazy
parents: 4
diff changeset
101 ```
Alain Mazy
parents: 4
diff changeset
102
Alain Mazy
parents: 4
diff changeset
103 mkdir ~/aws
Alain Mazy
parents: 4
diff changeset
104 cd ~/aws
Alain Mazy
parents: 4
diff changeset
105 git clone https://github.com/aws/aws-sdk-cpp.git
Alain Mazy
parents: 4
diff changeset
106
Alain Mazy
parents: 4
diff changeset
107 mkdir -p ~/aws/builds/aws-sdk-cpp
Alain Mazy
parents: 4
diff changeset
108 cd ~/aws/builds/aws-sdk-cpp
Alain Mazy
parents: 4
diff changeset
109 cmake -DBUILD_ONLY="s3;transfer" ~/aws/aws-sdk-cpp
Alain Mazy
parents: 4
diff changeset
110 make -j 4
Alain Mazy
parents: 4
diff changeset
111 make install
Alain Mazy
parents: 4
diff changeset
112 ```
Alain Mazy
parents: 4
diff changeset
113
Alain Mazy
parents: 4
diff changeset
114 ### Compile AWS S3 plugin ###
Alain Mazy
parents: 4
diff changeset
115
Alain Mazy
parents: 4
diff changeset
116 * `./vcpkg install cryptopp`
Alain Mazy
parents: 4
diff changeset
117 * `hg clone ...`
Alain Mazy
parents: 4
diff changeset
118 * `mkdir -p build/aws`
Alain Mazy
parents: 4
diff changeset
119 * `cd build/aws`
Alain Mazy
parents: 4
diff changeset
120 * `cmake -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]\scripts\buildsystems\vcpkg.cmake ../../orthanc-object-storage/Aws`
Alain Mazy
parents: 4
diff changeset
121
Alain Mazy
parents: 4
diff changeset
122 ### Azure plugin configuration ###
Alain Mazy
parents: 4
diff changeset
123
Alain Mazy
parents: 4
diff changeset
124 ```
Alain Mazy
parents: 4
diff changeset
125 "AwsS3Storage" : {
Alain Mazy
parents: 4
diff changeset
126 "BucketName": "test-orthanc-s3-plugin",
Alain Mazy
parents: 4
diff changeset
127 "Region" : "eu-central-1",
Alain Mazy
parents: 4
diff changeset
128 "AccessKey" : "AKXXX",
6
393fcf337462 AWS: added 3 configurations: Endpoint, ConnectionTimeout, RequestTimeout
Alain Mazy
parents: 5
diff changeset
129 "SecretKey" : "RhYYYY",
393fcf337462 AWS: added 3 configurations: Endpoint, ConnectionTimeout, RequestTimeout
Alain Mazy
parents: 5
diff changeset
130 "Endpoint": "", // optional: custom endpoint
393fcf337462 AWS: added 3 configurations: Endpoint, ConnectionTimeout, RequestTimeout
Alain Mazy
parents: 5
diff changeset
131 "ConnectionTimeout": 30, // optional: connection timeout in seconds
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 6
diff changeset
132 "RequestTimeout": 1200, // optional: request timeout in seconds (max time to upload/download a file)
20
968eb1c78aed Added 'RootPath' configuration
Alain Mazy
parents: 15
diff changeset
133 "RootPath": "", // optional: folder in which files are stored (ex: my/path/to/myfolder)
968eb1c78aed Added 'RootPath' configuration
Alain Mazy
parents: 15
diff changeset
134 "StorageEncryption" : {...}, // optional
968eb1c78aed Added 'RootPath' configuration
Alain Mazy
parents: 15
diff changeset
135 "StorageStructure" : "flat", // optional
968eb1c78aed Added 'RootPath' configuration
Alain Mazy
parents: 15
diff changeset
136 "MigrationFromFileSystemEnabled" : false // optional
5
Alain Mazy
parents: 4
diff changeset
137 }
Alain Mazy
parents: 4
diff changeset
138 ```