Actualiser docs/Services/pole-scientifique/Onyxia/docs/stockage.md

This commit is contained in:
Alexis GUYOT 2024-01-19 15:14:26 +01:00
parent 0be09edb84
commit 734859d914

View File

@ -2,7 +2,7 @@
## Principes
La solution de stockage de fichiers associée au Datalab est [MinIO](https://min.io), un système de stockage d'objets basé sur le cloud, compatible avec l'API S3 d'Amazon. Concrètement, cela a plusieurs avantages :
La solution de stockage de fichiers associée au Datalab est <a href="https://min.io" target="_blank">MinIO</a>, un système de stockage d'objets basé sur le cloud, compatible avec l'API S3 d'Amazon. Concrètement, cela a plusieurs avantages :
* les fichiers stockés sont accessibles facilement et à n'importe quel endroit : un fichier est accessible directement via une simple URL, qui peut être partagée ;
* il est possible d'accéder aux fichiers stockés directement dans les services de _data science_ (R, Python...) proposés sur le Datalab, sans avoir besoin de copier les fichiers localement au préalable, ce qui améliore fortement la reproductibilité des analyses.
@ -13,7 +13,7 @@ La solution de stockage de fichiers associée au Datalab est [MinIO](https://min
### Importer des données
La page [Mes fichiers](https://datalab.sspcloud.fr/mes-fichiers/) du Datalab prend la forme d'un explorateur de fichiers présentant les différents _buckets_ (dépôts) auxquels lutilisateur a accès.
La page <a href="https://datalab.sspcloud.fr/mes-fichiers/" target="_blank">Mes fichiers</a> du Datalab prend la forme d'un explorateur de fichiers présentant les différents _buckets_ (dépôts) auxquels lutilisateur a accès.
Chaque utilisateur dispose par défaut d'un _bucket_ personnel pour stocker ses fichiers. Au sein de ce _bucket_, deux options sont possibles :
@ -35,7 +35,7 @@ Dans le cadre de projets collaboratifs, il peut être intéressant pour les diff
:::
::: {.callout-warning}
Conformément aux [conditions d'utilisation](https://www.sspcloud.fr/tos\_fr.md), seuls des données de type _open data_ ou ne présentant aucune sensibilité peuvent être stockées sur le Datalab. Le fait qu'un fichier ait un statut de diffusion "privé" ne suffit pas à garantir une parfaite confidentialité.
Conformément aux <a href="https://www.sspcloud.fr/tos\_fr.md" target="_blank">conditions d'utilisation</a>, seuls des données de type _open data_ ou ne présentant aucune sensibilité peuvent être stockées sur le Datalab. Le fait qu'un fichier ait un statut de diffusion "privé" ne suffit pas à garantir une parfaite confidentialité.
:::
## Utiliser des données stockées sur MinIO
@ -61,10 +61,10 @@ library(aws.s3)
En Python, l'interaction avec un système de fichiers compatible S3 est rendu possible par deux librairies :
* [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html), une librairie créée et maintenue par Amazon ;
* [S3Fs](https://s3fs.readthedocs.io/en/latest/), une librairie qui permet d'interagir avec les fichiers stockés à l'instar d'un _filesystem_ classique.
* <a href="https://boto3.amazonaws.com/v1/documentation/api/latest/index.html" target="_blank">Boto3</a>, une librairie créée et maintenue par Amazon ;
* <a href="https://s3fs.readthedocs.io/en/latest/" target="_blank">S3Fs</a>, une librairie qui permet d'interagir avec les fichiers stockés à l'instar d'un _filesystem_ classique.
Pour cette raison et parce que S3Fs est utilisée par défaut par la librairie [pandas](https://pandas.pydata.org) pour gérer les connections S3, nous allons présenter la gestion du stockage sur MinIO via Python à travers cette librairie.
Pour cette raison et parce que S3Fs est utilisée par défaut par la librairie <a href="https://pandas.pydata.org" target="_blank">pandas</a> pour gérer les connections S3, nous allons présenter la gestion du stockage sur MinIO via Python à travers cette librairie.
```python
import os
@ -79,7 +79,7 @@ fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL})
MinIO propose un client en ligne de commande (`ùc`) qui permet dinteragir avec le système de stockage à la manière d'un _filesystem_ UNIX classique. Ce client est installé par défaut et accessible via un terminal dans les différents services du Datalab.
Le client MinIO propose les commandes UNIX de base, telles que ls, cat, cp, etc. La liste complète est disponible dans la [documentation du client](https://docs.min.io/docs/minio-client-complete-guide.html).
Le client MinIO propose les commandes UNIX de base, telles que ls, cat, cp, etc. La liste complète est disponible dans la <a href="https://docs.min.io/docs/minio-client-complete-guide.html" target="_blank">documentation du client</a>.
:::
@ -201,8 +201,11 @@ mc cp chemin/local/vers/mon/fichier.csv s3/<mon_bucket>/chemin/distant/vers/mon/
### Renouveler des jetons d'accès (*tokens*) périmés
L'accès au stockage MinIO est possible via un _token_ (jeton d'accès) personnel, valide 24h, et automatiquement régénéré à échéances régulières sur le SSP Cloud. Lorsqu'un token a expiré, les services créés avant la date d'expiration (avec le précédent token) ne peuvent plus accéder au stockage ; le service concerné apparaît alors marqué en rouge dans la page [Mes Services](https://datalab.sspcloud.fr/my-services). Dans ce cas, deux possibilités :
L'accès au stockage MinIO est possible via un _token_ (jeton d'accès) personnel, valide 24h, et automatiquement régénéré à échéances régulières sur le SSP Cloud. Lorsqu'un token a expiré, les services créés avant la date d'expiration (avec le précédent token) ne peuvent plus accéder au stockage ; le service concerné apparaît alors marqué en rouge dans la page <a href="https://onyxia.lab.groupe-genes.fr/my-services" target="_blank">Mes Services</a>. Dans ce cas, deux possibilités :
- ouvrir un nouveau service sur le Datalab, qui aura par défaut un nouveau token à jour
- remplacer manuellement les jetons périmés par des nouveaux. Des scripts indiquant la manière de faire pour les différentes utilisations de MinIO (`R`/`Python`/`mc`) sont disponibles [ici](https://datalab.sspcloud.fr/account/storage). Il suffit de choisir le script pertinent et de l'exécuter dans son environnement de travail courant.
- remplacer manuellement les jetons périmés par des nouveaux. Des scripts indiquant la manière de faire pour les différentes utilisations de MinIO (`R`/`Python`/`mc`) sont disponibles <a href="https://onyxia.lab.groupe-genes.fr/account/storage" target="_blank">ici</a>. Il suffit de choisir le script pertinent et de l'exécuter dans son environnement de travail courant.