Skip to content

Commit b7a277b

Browse files
committed
Merge branch '381-add-support-for-azure-filesystem' into 'master'
Resolve "Add support for Azure filesystem" Closes #381 See merge request apps/gateway/gateway!325
2 parents 287f4ff + 3a9c08f commit b7a277b

20 files changed

Lines changed: 1308 additions & 192 deletions

File tree

.gitlab-ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ lint:
5959
tests:
6060
stage: test
6161
script:
62+
- env
6263
- gotestsum --junitfile tests.junit.xml --rerun-fails --format-icons hivis --packages ./... -- -coverprofile=coverage.txt -covermode atomic -shuffle on
6364
after_script:
6465
- gocover-cobertura < coverage.txt > coverage.xml

doc/source/changelog.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
Historique des versions
44
=======================
55

6+
* :feature:`381` Ajout du support pour Azure Files et Azure Blob comme instances
7+
cloud. Voir leur documentations respectives :doc:`ici<source/reference/cloud/azurefiles>`
8+
et :doc:`ici<source/reference/cloud/azureblob>`.
69
* :bug:`506` Correction d'un bug qui empêchait l'utilisation des instances cloud.
710
Celles-ci pouvaient être créées ou modifiées sans problèmes, mais elles ne
811
pouvaient pas être utilisées dans un transfert (cela résultait systématiquement
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
==========
2+
Azure Blob
3+
==========
4+
5+
Waarp Gateway permet d'utiliser un bucket Azure Blob à la place du disque dur local.
6+
7+
.. note::
8+
Ne pas confondre avec :doc:`Azure Files<azurefiles>`.
9+
10+
Configuration
11+
-------------
12+
13+
Pour utiliser une instance cloud, celle-ci doit d'abord être créée et configurée.
14+
Pour créer une instance cloud Azure Blob, le type renseigné doit être ``azblob``
15+
ou ``azureblob``.
16+
17+
Authentification
18+
^^^^^^^^^^^^^^^^
19+
20+
Pour se connecter à une instance Azure, Waarp Gateway a besoin d'identifiants.
21+
Ces identifiants peuvent être fournis de 2 manières différentes :
22+
23+
- Soit en les renseignant directement à la création de l'instance cloud, auquel cas :
24+
25+
- Le paramètre *key* doit contenir le nom de compte
26+
- Le paramètre *secret* doit contenir la clé du compte
27+
- Soit en les renseignant dans des variables d'environnement. Les variables
28+
suivantes doivent être renseignées :
29+
30+
- :envvar:`AZURE_STORAGE_ACCOUNT` pour le nom de compte
31+
- :envvar:`AZURE_CLIENT_SECRET` pour la clé d'authentification
32+
- :envvar:`AZURE_TENANT_ID` pour l'ID du locataire Microsoft Entra
33+
- :envvar:`AZURE_CLIENT_ID` pour l'ID de l'application
34+
35+
Options
36+
^^^^^^^
37+
38+
Les options de configuration suivantes sont disponibles pour Azure Blob :
39+
40+
* **endpoint**: L'adresse du serveur Azure (si celle-ci est différente de l'adresse
41+
par défaut ``core.windows.net``).
42+
* **env_auth**: Booléen, mettre à ``true`` pour activer l'authentification via
43+
variables d'environnement décrite ci-dessus.
44+
45+
Exemple
46+
-------
47+
48+
Prenons le cas de figure suivant :
49+
50+
- fichier: ``doc/waarp-gateway.pdf``
51+
- authentification via variables d'environnement
52+
53+
Dans un premier temps, l'instance cloud doit être définie. Dans cet exemple, nous
54+
lui donnerons le nom "ex-azblob".
55+
56+
La commande de création pour cette instance cloud est donc :
57+
58+
.. code-block:: shell
59+
waarp-gateway cloud add -n "ex-azblob" -t "azblob" -o "env_auth:true"
60+
61+
Par la suite, lors de mon transfert, le chemin du fichier devra donc ressembler à :
62+
63+
| ex-azblob:doc/waarp-gateway.pdf
64+
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
===========
2+
Azure Files
3+
===========
4+
5+
Waarp Gateway permet d'utiliser un share Azure Files à la place du disque dur local.
6+
7+
.. note::
8+
Ne pas confondre avec :doc:`Azure Blob<azureblob>`.
9+
10+
Configuration
11+
-------------
12+
13+
Pour utiliser une instance cloud, celle-ci doit d'abord être créée et configurée.
14+
Pour créer une instance cloud Azure Files, le type renseigné doit être ``azfiles``
15+
ou ``azurefiles``.
16+
17+
Authentification
18+
^^^^^^^^^^^^^^^^
19+
20+
Pour se connecter à une instance Azure, Waarp Gateway a besoin d'identifiants.
21+
Ces identifiants peuvent être fournis de 2 manières différentes :
22+
23+
- Soit en les renseignant directement à la création de l'instance cloud, auquel cas :
24+
25+
- Le paramètre *key* doit contenir le nom de compte
26+
- Le paramètre *secret* doit contenir la clé du compte
27+
- Soit en les renseignant dans des variables d'environnement. Les variables
28+
suivantes doivent être renseignées :
29+
30+
- :envvar:`AZURE_STORAGE_ACCOUNT` pour le nom de compte
31+
- :envvar:`AZURE_CLIENT_SECRET` pour la clé d'authentification
32+
- :envvar:`AZURE_TENANT_ID` pour l'ID du locataire Microsoft Entra
33+
- :envvar:`AZURE_CLIENT_ID` pour l'ID de l'application
34+
35+
Options
36+
^^^^^^^
37+
38+
Les options de configuration suivantes sont disponibles pour Azure Files :
39+
40+
* **share_name**: *REQUIS* - Le nom du *share* dans lequel le fichier sera déposé.
41+
* **endpoint**: L'adresse du serveur Azure (si celle-ci est différente de l'adresse
42+
par défaut ``core.windows.net``).
43+
* **env_auth**: Booléen, mettre à ``true`` pour activer l'authentification via
44+
variables d'environnement décrite ci-dessus.
45+
46+
Exemple
47+
-------
48+
49+
Prenons le cas de figure suivant :
50+
51+
- fichier: ``doc/waarp-gateway.pdf``
52+
- share: ``archive``
53+
- nom de compte: ``toto``
54+
- clé d'accès: ``sesame``
55+
56+
Dans un premier temps, l'instance cloud doit être définie. Dans cet exemple, nous
57+
lui donnerons le nom "ex-azfiles".
58+
59+
La commande de création pour cette instance cloud est donc :
60+
61+
.. code-block:: shell
62+
waarp-gateway cloud add -n "ex-azfiles" -t "azblob" -k "toto" -s "sesame" -o "share_name:archive"
63+
64+
Par la suite, lors de mon transfert, le chemin du fichier devra donc ressembler à :
65+
66+
| ex-azfiles:doc/waarp-gateway.pdf

doc/source/reference/cloud/index.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
.. _reference-cloud:
22

3-
###########################################
4-
Liste des types d'instances cloud supportés
5-
###########################################
3+
###############
4+
Instances cloud
5+
###############
66

77
Au lieu d'utiliser le disque local pour le transfert de fichiers, la gateway est
88
également capable de stocker ou récupérer les fichiers sur une instance cloud
@@ -19,6 +19,8 @@ Cette liste regroupe les types d'instances cloud supportés par la gateway, ains
1919
que leur configurations respectives.
2020

2121
.. toctree::
22-
:maxdepth: 2
22+
:maxdepth: 1
2323

2424
s3
25+
azurefiles
26+
azureblob

doc/source/reference/cloud/s3.rst

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,39 @@
1-
.. _ref-fs-s3:
2-
31
=========
42
Amazon S3
53
=========
64

7-
Pour qu'un fichier soit déposé et/ou lu depuis un serveur cloud de type S3, il
8-
faut que le chemin complet du fichier (après concaténation des éventuels chemins
9-
de règle et/ou de serveur) forme un chemin distant ayant la syntaxe : ::
5+
Waarp Gateway permet d'utiliser un bucket S3 à la place du disque dur local.
106

11-
instance:chemin/du/fichier
7+
Configuration
8+
-------------
129

13-
Pour ce faire, l'instance en question doit avoir été pré-configurée dans la
14-
gateway, par exemple via la :ref:`commande CLI<reference-cli-client-cloud>`.
10+
Pour utiliser une instance cloud, celle-ci doit d'abord être créée et configurée.
11+
Pour créer une instance cloud S3, le type renseigné doit être ``s3`` ou ``aws``.
1512

16-
Identifiants
17-
------------
13+
Authentification
14+
^^^^^^^^^^^^^^^^
1815

1916
Pour se connecter à une instance S3, Waarp Gateway a besoin d'identifiants.
2017
Ces identifiants peuvent être fournis de 2 manières différentes :
2118

22-
- soit en les renseignant directement à la création de l'instance cloud
23-
- soit en les renseignant dans des variables d'environnement
19+
- Soit en les renseignant directement à la création de l'instance cloud, auquel cas :
2420

25-
Ces variables d'environnement sont :
21+
- Le paramètre *key* doit contenir la clé d'accès
22+
- Le paramètre *secret* doit contenir la clé secrète
23+
- Soit en les renseignant dans des variables d'environnement. Les variables
24+
suivantes doivent être renseignées :
2625

27-
- :envvar:`AWS_ACCESS_KEY_ID` pour la clé d'accès AWS
28-
- :envvar:`AWS_SECRET_ACCESS_KEY` pour la clé secrète associée à la clé d'accès
26+
- :envvar:`AWS_ACCESS_KEY_ID` pour la clé d'accès AWS
27+
- :envvar:`AWS_SECRET_ACCESS_KEY` pour la clé secrète associée à la clé d'accès
2928

3029
Options
31-
-------
30+
^^^^^^^
3231

33-
La *Gateway* permet de stocker les fichier envoyés et reçu sur un serveur cloud
34-
de stockage S3 (AWS ou autre). Pour cela, l'instance cloud à créer doit contenir
35-
les options suivantes :
32+
Les options de configuration suivantes sont disponibles pour S3 :
3633

3734
* **bucket**: *REQUIS* - Le nom du bucket dans lequel le fichier sera déposé.
35+
* **env_auth**: Booléen, mettre à ``true`` pour activer l'authentification via
36+
variables d'environnement décrite ci-dessus.
3837
* **region**: La région du serveur S3. Peut également être renseigné via la
3938
variable d'environnement :envvar:`AWS_REGION`.
4039
* **endpoint**: L'adresse du serveur S3 (si celle-ci est différente de l'adresse
@@ -46,23 +45,23 @@ Exemple
4645

4746
Prenons le cas de figure suivant :
4847

49-
- fichier: ``doc/waarp-gateway.pdf``
50-
- bucket: ``archive``
51-
- point de terminaison: ``s3.eu-west-3.amazonaws.com``
52-
- région: ``eu-west-3`` (Paris)
53-
- clé d'accès: ``toto``
54-
- clé d'accès secrète: ``sesame``
48+
- fichier: ``doc/waarp-gateway.pdf``
49+
- bucket: ``archive``
50+
- point de terminaison: ``s3.eu-west-3.amazonaws.com``
51+
- région: ``eu-west-3`` (Paris)
52+
- clé d'accès: ``toto``
53+
- clé d'accès secrète: ``sesame``
5554

5655
Dans un premier temps, l'instance cloud doit être définie. Dans cet exemple, nous
57-
lui donnerons le nom "instance-exemple".
56+
lui donnerons le nom "ex-s3".
5857

5958
La commande de création pour cette instance cloud est donc :
6059

6160
.. code-block:: shell
6261
63-
waarp-gateway cloud add -n "instance-exemple" -t "s3" -k "toto" -s "sesame" -o "bucket:archive" -o "region:eu-west-3" -o "endpoint:s3.eu-west-3.amazonaws.com"
62+
waarp-gateway cloud add -n "ex-s3" -t "s3" -k "toto" -s "sesame" -o "bucket:archive" -o "region:eu-west-3" -o "endpoint:s3.eu-west-3.amazonaws.com"
6463
65-
Par la suite, lors de mon transfert, le chemin du fichier devra donc ressembler à : ::
64+
Par la suite, lors de mon transfert, le chemin du fichier devra donc ressembler à :
6665

67-
instance-exemple:doc/waarp-gateway.pdf
66+
| ex-s3:doc/waarp-gateway.pdf
6867

0 commit comments

Comments
 (0)