Protocoles de synchronisation des données par fichier

Dans cette section, nous détaillons les protocoles pris en charge par CitrusAd et la manière de nommer les fichiers pour que CitrusAd puisse les télécharger automatiquement depuis votre serveur.

Protocoles

CitrusAd prend en charge plusieurs méthodes de récupération des fichiers de données. Les fichiers de données doivent être stockés sur votre serveur afin d'être téléchargés via l'un des protocoles standard.

Actuellement, CitrusAd prend en charge le téléchargement de fichiers de données via les protocoles suivants :

  • GCS
  • SFTP
  • SCP
  • HTTPS

Vous devrez généralement fournir des informations sur le protocole, l'hôte, le port et le chemin d'accès d'un fichier de données afin que CitrusAd puisse le télécharger. Lorsqu'une authentification est requise pour télécharger des fichiers de données, vous devrez fournir à CitrusAd un identifiant (par exemple, un nom d'utilisateur et un mot de passe) afin de rendre possible l'authentification sur votre système.

Si vous utilisez un protocole SFTP, CitrusAd prend en charge deux types d'authentification pour télécharger des fichiers de données :

  • Un nom d’utilisateur et un mot de passe
  • La clé publique de CitrusAd.

Pour le second type d'authentification, la clé publique suivante doit être installée sur votre serveur SFTP.

Staging :

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDMd4w5Z6hsjlUc0/r3dTJ+IaM9Mm+l3ZTrX3D5+30ZNiAb3Mhvlp8gv37CFKzqM90oFejl15bbr5dymjycsOWInxqkMyLOTbdMFAk7hmicNvN5bt3tx/Z0UewNvAx0Uw9Qxu7SCMSAalk9l7dqLp5RFFj+RHq9ApV8KIA/Fw2mjCw2vrJhiRWeuUuNNQTbGFBA5y72ATeYA2p0ZK3/TTJxyxCL70zGVxFG0jdAurfXKujYaF73Ql/gl5wmtnxGvTORtvObQdc2jCTsynj1w17LSZAdeoPQGnQkVCk37ZUnWTw8s4RYjHFVunsTDxJO5Qnw5yj8oqhe5IdpQyavUj+otRd6900q/3dK60IELH6AFz+ZEqudlBh8ZO2hvHIDS2Ii5S3LunlejykAVdRl7RVHA17Pk3mmrHCS6i3n9ZliBYeVQiKme2jHVB+ESrHFxQWl3ct9MYFNlAqwuhTFQRSG9ioSEHX5Dnmqk8aqbm/4pYY4b7YHOcIpHrtrVrFTJ3vLM1If1OVrDQidFhi1ArmoCU+PO65jNSeMj27m/HoX7Mbcmi8F++Op3MgP8iJrohE0Wjz+use7nlDtQTtDxDeEQQYGqsz4DOtH/jn1TWRynaXZqwPqC5Q6b52QM22T+E3rgT/4G7yJU3IRKioByOck251MEtOEgSCvvIAaV685fQ==

Production

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCtpIUFoYu8OUesZGP9rffv6/hky1HbQCAhC8hNRmcWpdptzRYsKIZFPz9t2vb85dierTZqJstAEJkePHd25cZ8btIBacbAR49avCIXiBuVgvlJk1+Er2dyYqSzSeFhpzlZxi4CkGo/Nsx7yxPi5693fdVF3vr+/iencw1tdLJJXfT6j1YLBCREg+IziBCO6m9P0QQGEDXYvsOmIzl0CJ8enU7gjvnYL5ify1/aGpoXv9/XcCYJWXTQmvmISknOMdC4pBiuDqsE9CX27FLQQb1ZT5jNrqD5hFsEo0rWqLiCbb5qoxIdMSe/IbA+sewgpgTPNJXeCNLSSH/MHhj2IgiMZGDDDaVaqMZD7N2jeQdI6SQbgvXiLTTUL4gNyO5eN9oqoeJumeZMi0+MQ7kkfHDYGtKe3RMxL7heL650HL+eWDIybezyPdQmfyVew9KuN0uB+2X+2NxQs8ZLqow486XDfUDfo+rPuoIvkYy7Z8ox+gne+1iAk43TCekcDwxlc56R9muMtGLuzzg1x9s9MqsAg5JNWEPQ8giAwCQJwm7h3UcCY3TJCn0LUzYHc7Ycr11JfIXL47vYGH3C0XBYlbEU/8m4VhhexzgJi8G/reclY5pfjtwQGOiobsxLsWgGx6Qoz/qWqmGwQIg+qi7jvA7jnltUP+RTFZpmd18/dSxB+w==

Production :

Compression et chiffrement des données

Vous devrez peut-être compresser et chiffrer les données avant de les télécharger sur votre serveur en vue de les synchroniser. Lorsque les fichiers de données sont à la fois compressés et chiffrés, CitrusAd suppose que la compression est antérieure au chiffrement.

Lorsqu'un fichier de données est chiffré, CitrusAd déchiffre le fichier de données après son téléchargement. Nous prenons actuellement en charge le déchiffrement des données pour les fichiers chiffrés par des programmes PGP. Vous trouverez plus d'informations sur la cryptographie PGP sur https://tools.ietf.org/html/rfc4880.

Si vous choisissez d'utiliser ce type de chiffrement pour les fichiers de données, vous pouvez utiliser la clé publique ci-dessous pour les chiffrer avant de les charger sur votre serveur. Seul CitrusAd peut déchiffrer les fichiers de données chiffrés.

Clé publique :

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
tPA=
=lRkN
-----END PGP PUBLIC KEY BLOCK-----

Lorsqu'un fichier de données est envoyé compressé, nous le décompressons avant le traitement. Nous prenons actuellement en charge la décompression de deux types de formats de compression : zip et gzip.

Convention d'affectation des noms de fichiers

Comme mentionné précédemment, vous devrez fournir des informations sur le protocole, l'hôte, le port et le chemin d'accès d'un fichier de données afin que CitrusAd puisse le télécharger et le traiter. Vous pouvez choisir une heure à laquelle vous pouvez facilement vous assurer que le fichier de données est prêt sur le serveur, pour que CitrusAd puisse télécharger les fichiers quotidiennement.

Le moyen le plus simple de spécifier à CitrusAd un fichier cible à télécharger chaque jour consiste à fournir un nom de fichier explicite. CitrusAd utilisera ensuite ce nom pour récupérer le fichier de données sur votre serveur.

Lorsque vous utilisez les protocoles FTP, FTPS et SFTP pour la communication entre votre serveur et CitrusAd, nous prenons en charge d'autres options vous permettant de spécifier les fichiers cibles à télécharger par CitrusAd, notamment :

  • Rolling_earliest
  • Rolling_earliest_24_hours
  • Rolling_latest
  • Rolling_latest_24_hours.

Ces options sont également appelées modes de fichiers cibles.

Lorsque vous choisissez l'une des options décrites ci-dessus, vous devez fournir à CitrusAd un modèle textuel pour les noms de fichiers de données. Dans le modèle textuel se trouve la chaîne spéciale « {*} ». CitrusAd utilisera le modèle que vous lui fournissez pour faire correspondre les noms de fichiers sur votre serveur afin de choisir et de télécharger un fichier cible chaque jour.

Voici un exemple de modèle : « CitrusAdCatalogDataAU{}.txt ». Ce modèle spécifie que les noms de fichiers correspondants doivent commencer par le préfixe « CitrusAdCatalogData_AU » et avoir pour suffixe « .txt ». Lorsque le modèle « CitrusAdCatalogDataAU{_}.txt » est utilisé, les noms de fichiers ci-dessous correspondent au modèle :

CitrusAdCatalogProduct_AU_20190315.txt
CitrusAdCatalogProduct_AU_20190314.txt
CitrusAdCatalogProduct_AU_20190312.txt

Afin d'éviter de télécharger des fichiers de données en cours d'importation, CitrusAd ne télécharge que ceux qui ont été modifiés plus d'une minute avant le moment où nous accédons au serveur.

Bien qu'il existe plusieurs noms de fichiers correspondant au modèle, CitrusAd ne télécharge et ne traite qu'un seul fichier à la fois. Afin de choisir un fichier parmi une liste de candidats, nous définissons différents modes de fichiers cibles parmi lesquels vous pouvez choisir. Les modes de fichiers cibles sont abordés plus en détail ci-dessous.

Rolling_earliest

Dans ce mode de fichier cible, nous utilisons le modèle pour filtrer les fichiers par nom, puis nous trions les résultats par ordre croissant, selon le nom des fichiers, et renvoyons le premier résultat.

Par exemple, si le modèle des noms de fichiers est « CitrusAdCatalogDataAU{*}.txt » et que la liste des noms de fichiers filtrés par ce modèle est la suivante, le fichier « CitrusAdCatalogProduct_AU_20190312.txt » sera sélectionné dans ce mode de fichier cible.

CitrusAdCatalogProduct_AU_20190312.txt
CitrusAdCatalogProduct_AU_20190313.txt
CitrusAdCatalogProduct_AU_20190314.txt

Rolling_earliest_24_hours

Dans ce mode de fichier cible, nous utilisons d'abord le modèle pour filtrer les fichiers par nom. Nous ne choisissons ensuite que les fichiers modifiés au cours des dernières vingt-quatre heures. Enfin, nous trions les résultats par ordre croissant, selon le nom des fichiers, et renvoyons le premier résultat.

Par exemple, supposons que l'heure actuelle est 2019-03-15 10:30:07 et que le modèle pour les noms de fichiers est « CitrusAdCatalogDataAU{*}.txt ». Parmi la liste des noms de fichiers filtrés par le modèle dans le tableau ci-dessous, le fichier « CitrusAdCatalogProduct_AU_20190314.txt » sera choisi dans ce mode de fichier cible.

Exemple de fichiers avec les noms et dates de dernière modification

Nom du fichierDernière modification
CitrusAdCatalogProduct_AU_20190312.txt13/03/19 15:35:11
CitrusAdCatalogProduct_AU_20190313.txt13/03/19 15:35:08
CitrusAdCatalogProduct_AU_20190314.txt14/03/19 15:35:10
CitrusAdCatalogProduct_AU_20190315.txt15/03/19 10:05:07

Rolling_latest

Dans ce mode de fichier cible, nous utilisons le modèle pour filtrer les fichiers par nom. Nous trions ensuite les résultats par ordre décroissant, selon le nom des fichiers, et renvoyons le premier résultat.

Par exemple, si le modèle des noms de fichiers est « CitrusAdCatalogDataAU{*}.txt » et que la liste des noms de fichiers filtrés par ce modèle est la suivante, le fichier « CitrusAdCatalogProduct_AU_20190314.txt » sera choisi dans ce mode de fichier cible.

CitrusAdCatalogProduct_AU_20190314.txt
CitrusAdCatalogProduct_AU_20190313.txt
CitrusAdCatalogProduct_AU_20190312.txt

Ce mode de fichier cible est similaire à Rolling_earliest. Cependant, au lieu de trier les fichiers par ordre croissant, nous les trions par ordre décroissant, selon leur nom.

Rolling_latest_24_hours

Dans ce mode de fichier cible, nous utilisons d'abord le modèle pour filtrer les fichiers en utilisant leur nom. Nous ne choisissons ensuite que les fichiers modifiés au cours des dernières vingt-quatre heures. Enfin, nous trions les résultats par ordre décroissant, selon le nom des fichiers, et renvoyons le premier résultat.

Par exemple, supposons que l'heure actuelle est 2019-03-15 10:30:07 et que le modèle pour les noms de fichiers est « CitrusAdCatalogDataAU{*}.txt ». Parmi la liste des noms de fichiers filtrés par le modèle dans le tableau ci-dessous, le fichier « CitrusAdCatalogProduct_AU_20190315.txt » sera choisi dans ce mode de fichier cible.

Ce mode de fichier cible est similaire à Rolling_earliest_24_hours. Cependant, au lieu de trier les fichiers par ordre croissant, nous les trions par ordre décroissant, selon leur nom.

Exemple de fichiers avec les noms et dates de dernière modification

Nom du fichierDernière modification
CitrusAdCatalogProduct_AU_20190312.txt13/03/19 15:35:11
CitrusAdCatalogProduct_AU_20190313.txt13/03/19 15:35:08
CitrusAdCatalogProduct_AU_20190314.txt14/03/19 15:35:10
CitrusAdCatalogProduct_AU_20190315.txt15/03/19 10:05:07