Présentation
La source S3 récupère des fichiers de données depuis un bucket Amazon S3 ou tout service de stockage compatible S3 (par ex. MinIO, DigitalOcean Spaces, OVH Object Storage). Utilisez-la lorsque vos données sont stockées sous forme de fichiers dans S3 et que vous souhaitez les importer dans Reelevant pour la personnalisation.Configuration
Champs obligatoires
Champs optionnels
Accès inter-comptes avec AssumeRole
Lorsque le bucket appartient à votre propre compte AWS, vous pouvez préférer ne pas confier à Reelevant une clé qui le lit directement. Créez plutôt dans votre compte un rôle IAM que Reelevant est autorisé à endosser. Reelevant obtient des identifiants temporaires pour ce rôle, puis les utilise pour lister et télécharger les fichiers. Renseignez le champassumeRole avec les options suivantes :
bucket, path, region et les autres options conservent la même signification.
Avec les identifiants de Reelevant (recommandé)
LaissezaccessKey et secretKey vides et renseignez uniquement assumeRole.roleArn. Reelevant endosse d’abord son propre rôle reelevant-customers-access, puis endosse votre rôle depuis celui-ci. Rien n’est à créer côté Reelevant pour un nouveau client.
Sur votre compte AWS, configurez le rôle ainsi :
- Trust policy : autorisez l’action
sts:AssumeRolepour le principal et la condition ci-dessous. - Permissions policy : accordez
s3:ListBucketsur le bucket ets3:GetObjectsur les objets sous lepathconfiguré. Si le bucket utilise le chiffrement SSE-KMS, accordez aussikms:Decryptsur la clé. - Durée de session maximale : conservez-la supérieure ou égale à
durationSeconds.
L’external ID est votre ID de société Reelevant, que vous pouvez obtenir auprès de votre Technical Account Manager. Reelevant l’envoie systématiquement : une autre société Reelevant ne peut donc pas endosser votre rôle, même si elle connaît son ARN.
Reelevant endosse votre rôle depuis un autre rôle (role chaining) : AWS limite donc chaque session à une heure. Reelevant renouvelle les identifiants automatiquement avant leur expiration, les imports longs ne sont pas affectés.
Avec vos propres identifiants
Renseignez dansaccessKey et secretKey la clé d’un utilisateur IAM autorisé à endosser le rôle, puis configurez la trust policy du rôle pour cet utilisateur. Si vous utilisez un externalId, ajoutez une condition exigeant que sts:ExternalId soit égal à cette valeur.
La configuration de la Datasource est rejetée si une seule des clés
accessKey et secretKey est renseignée, ou si roleArn n’est pas un ARN de rôle IAM valide. Elle l’est aussi si durationSeconds est hors limites, ou si externalId est vide ou renseigné avec les identifiants de Reelevant. accessKey, secretKey et externalId sont stockés comme champs sensibles et ne sont jamais affichés une fois enregistrés. Les identifiants temporaires sont conservés uniquement en mémoire.Services compatibles S3
La source S3 fonctionne avec tout service implémentant l’API S3. Définissezendpoint sur l’URL de votre fournisseur :
| Fournisseur | Exemple d’endpoint |
||-----------------|
| AWS S3 | https://s3.amazonaws.com (par défaut) |
| MinIO | https://minio.example.com |
| DigitalOcean Spaces | https://nyc3.digitaloceanspaces.com |
| OVH Object Storage | https://s3.gra.io.cloud.ovh.net |
| Scaleway | https://s3.fr-par.scw.cloud |
Formats de fichiers pris en charge
S3 détecte automatiquement le format du fichier. Les formats suivants sont pris en charge :Les fichiers compressés (
.gz, .zip) sont automatiquement décompressés avant le parsing.Déchiffrement PGP
La source S3 prend en charge les fichiers chiffrés PGP. LorsquepgpPrivateKey est configuré, les fichiers sont déchiffrés de manière transparente avant la décompression et le parsing.
Les fichiers chiffrés armored (
.asc) et binary (.pgp, .gpg) sont pris en charge.
Consultez le guide de déchiffrement PGP pour plus de détails sur la génération de clés, les formats pris en charge et la gestion des erreurs.
Chemins wildcards
Vous pouvez utiliser un wildcard (*) dans le chemin du fichier pour correspondre à plusieurs fichiers. Cela est utile lorsque :
- Un nouveau fichier est exporté périodiquement avec un nom différent (par ex.
exports/products_20240101.csv,exports/products_20240102.csv) - Les données sont réparties sur plusieurs fichiers dans le même répertoire
exports/products_*.csv— correspond à tous les fichiers CSV commençant parproducts_dans le préfixeexports/data/*.json— correspond à tous les fichiers JSON sous le préfixedata/
Modes de traitement des fichiers
Lors de l’utilisation de chemins wildcards, vous pouvez configurer la manière dont les fichiers sont sélectionnés via le champprocessType :
Pour exclure les fichiers correspondants modifiés avant une date donnée, définissez
ignoreFilesBefore ; consultez Ignorer les fichiers antérieurs à une date.
Fonctionnement
- Reelevant s’authentifie auprès de S3 avec la clé d’accès et la clé secrète fournies. Avec
assumeRole, il obtient d’abord des identifiants temporaires du rôle configuré, avec les identifiants de Reelevant si aucune clé n’est renseignée. - Le bucket et le chemin spécifiés sont accédés. Si un wildcard est utilisé, les objets correspondants sont listés.
- Les fichiers sont téléchargés, décompressés si nécessaire, et parsés selon le format détecté.
- Les champs sont extraits et rendus disponibles pour le mapping.
- Lors des synchronisations suivantes, les fichiers sont rerécupérés selon le mode de traitement configuré.