Stocker mes données (S3)¶
Tout ce qui entre et sort de la plateforme passe par le stockage objet : les données que vous apportez, celles que vos traitements consomment, et les produits qu'ils génèrent. C'est un stockage S3-compatible fourni par la plateforme, dimensionné pour les volumes de l'observation de la Terre et pour les formats qui vont avec - COG, Zarr, NetCDF, Shapefile, GeoJson, csv, etc... se lisent directement depuis le bucket, sans recopie préalable.
Ce dont vous avez besoin¶
L'administration de la plateforme vous remet une paire de clés (Access Key ID et Secret Access Key) Le reste des paramètres est commun à tous :
| Paramètre | Valeur |
|---|---|
| Endpoint | https://s3.waw4-1.cloudferro.com |
| Région | waw4-1 |
| Bucket | <votre-bucket> |
Un stockage encore partagé
Pendant la phase pilote, l'infrastructure est mutualisée entre les partenaires du projet. Vous verrez donc les buckets des autres en parcourant le stockage : c'est normal, mais travaillez uniquement dans celui qui vous a été attribué. À terme, chaque Value Adder disposera d'un espace isolé.
Accéder au stockage¶
Trois chemins, selon ce que vous faites. Pour déposer des fichiers à la main et explorer votre bucket, rclone et son interface web suffisent largement. Pour automatiser, la ligne de commande AWS ou boto3 s'intègrent mieux dans un script.
rclone, en interface graphique¶
C'est la façon la plus directe de commencer, et elle ne demande aucune ligne de configuration. Une fois rclone installé, lancez :
L'interface s'ouvre toute seule dans votre navigateur. Rendez-vous dans Configs, puis Create a new config, et déroulez le formulaire :
- Nommez la configuration -
urbiverdefera l'affaire. - Choisissez s3 comme type de stockage.
- Sélectionnez Ceph comme fournisseur.
- Reportez l'endpoint, l'Access Key ID et la Secret Access Key.
- Enregistrez.
Votre bucket devient alors navigable depuis l'interface : vous y créez des répertoires, déposez et récupérez des fichiers, déplacez, renommez et supprimez ce dont vous n'avez plus besoin. La documentation de l'interface et celle de la configuration S3 couvrent le reste.
rclone, en ligne de commande¶
Si vous préférez éditer la configuration directement, le même accès s'écrit dans
~/.config/rclone/rclone.conf :
[urbiverde]
type = s3
provider = Ceph
access_key_id = <votre-cle>
secret_access_key = <votre-secret>
endpoint = https://s3.waw4-1.cloudferro.com
region = waw4-1
Le champ provider compte
Il doit valoir Ceph. Avec une autre valeur, la connexion s'établit mais certaines
opérations échouent plus tard, sur des messages qui ne désignent pas la cause.
Les commandes du quotidien :
rclone ncdu urbiverde:/ # explorer le stockage
rclone ls urbiverde:<votre-bucket> # lister le contenu
rclone copy ./produits urbiverde:<votre-bucket>/mes-produits/
En ligne de commande AWS¶
L'outil aws fonctionne tel quel, à condition de lui indiquer l'endpoint à chaque appel
puisqu'il vise Amazon par défaut :
aws --endpoint-url https://s3.waw4-1.cloudferro.com \
s3 cp ./produit.tif s3://<votre-bucket>/mes-produits/
Depuis Python¶
C'est la voie à suivre dans vos traitements. Même remarque sur l'endpoint, à passer explicitement au client :
import boto3
s3 = boto3.client(
"s3",
aws_access_key_id="<votre-cle>",
aws_secret_access_key="<votre-secret>",
endpoint_url="https://s3.waw4-1.cloudferro.com",
region_name="waw4-1",
)
s3.upload_file("produit.tif", "<votre-bucket>", "mes-produits/produit.tif")
Dans une chaîne de traitement, n'écrivez pas ces identifiants dans le code : la plateforme les fournit par son mécanisme de secrets, décrit dans le guide Processing.
Organiser vos données¶
Rangez chaque produit sous un préfixe <ville>/<indicateur>/<date>/, la date au format
YYYYMMDD :
s3://<votre-bucket>/toulouse/lcz/20220615/
s3://<votre-bucket>/metropole-grand-nancy/ndvi/20260627/ndvi_20260627.tif
Ce rangement vous permet de retrouver un produit facilement, de relancer un
traitement sur une autre ville ou une autre date sans écraser l'existant, et c'est la
structure attendue pour publier un indicateur. Ce qui précède les
trois segments reste libre : s3://<votre-bucket>/map-products/toulouse/lcz/20220615/.
- Tout en minuscules, sans accents ni espaces, avec
-comme séparateur :saint-etienne/ilot-chaleur/, pasSaint Étienne/Îlot chaleur/. - Les mêmes noms de ville et d'indicateur d'un dépôt à l'autre, ceux du référentiel
commun :
lczetLCZ_satdésignent deux indicateurs différents. - La date de la période observée (l'acquisition), pas celle du traitement. Pour un
produit annuel ou mensuel,
YYYYouYYYYMMconviennent, mais gardez un seul format par indicateur : les dates sont triées comme du texte. - Une date par préfixe. Ne mélangez jamais les fichiers de deux dates.
- Des noms de fichiers explicites, qui reprennent la date :
ndvi_20260627.tifplutôt queoutput.tif.
Choisir ses formats¶
Le stockage accepte n'importe quel fichier, mais les formats cloud-optimisés changent tout à l'usage : ils se lisent par morceaux, ce qui évite de rapatrier plusieurs gigaoctets pour n'en exploiter qu'une fraction.
- COG (Cloud Optimized GeoTIFF) pour le raster. C'est aussi ce qui permet à TiTiler de servir des tuiles sans pré-génération.
- Zarr ou NetCDF pour les séries temporelles et les données multidimensionnelles.
- GeoJSON ou GeoPackage pour le vecteur.
Lecture depuis un navigateur
Si une application web lit le bucket directement, le CORS doit autoriser son domaine - sans quoi les téléchargements échouent silencieusement, avec pour seule trace une erreur dans la console du navigateur. Signalez le domaine à l'administrateur de la plateforme.