Règles de publication de fichiers distants

Opendatasoft vous permet d’automatiser la mise à jour de données mises à disposition via une URL.

Mais qu'est-ce qui est republié à l’intérieur d’un jeu de données quand une planification a été mise en place? Cela dépend:

Cas de fichiers stockés sur un FTP

Cas où la source FTP est un dossier

  • Si un fichier existant est modifié, nous allons retraiter l'intégralité de ce fichier.
  • Si un fichier est ajouté (sans modifications sur les autres fichiers), seul ce fichier sera traité (c’est de l’incrémental, donc).
  • Si il n'y a aucun changement, le jeu de données n’est pas retraité à la publication.

Cas où la source FTP est un fichier

  • S’il y a une modification dans le fichier, tout le fichier va être reprocessé à la publication (du fait que la source FTP soit un fichier et non un dossier, il n'est pas possible d'utiliser le mode incrémental).
  • Si aucun changement, le jeu de donnée n’est pas retraité à la publication.

ArcGIS

Dans le cas d’une source ArcGIS, nous ne sommes pas en mesure de détecter si le fichier a été modifié depuis la dernière publication. De fait, l'intégralité du fichier sera traité et publié.

Cas de fichiers sur un HTTPS

Similaire au cas FTP, nous avons besoin de détecter un changement de la date de modification de ce même fichier. Cela peut être vérifié via les headers “Etag” et “Last-modified” et les requêtes conditionnelles “If-None-Match” et “If-Modified-Since”. 

  • Si le header “Last-modified” renvoyé par la source HTTP change à chaque requête par exemple, la détection ne pourra pas fonctionner ce qui a pour conséquence un retraitement total du fichier.
  • La requête conditionnelle “If-Modified-Since” s'attend à recevoir une réponse avec un statut HTTP 200, uniquement si la ressource a été modifiée depuis la date donnée. Si celle-ci n'a pas été modifiée depuis, la réponse doit fournir un statut HTTP 304 sans aucun contenu.
  • Avec “If-None-Match” le serveur renvoie la ressource demandée, avec un statut 200, seulement si elle n'a pas un ETag correspondant à ceux fournis. Pour les autres méthodes, la requête ne sera traitée que si l'ETag de l'éventuelle ressource existante ne correspond à aucune des valeurs listées. Quand la condition échoue pour les méthodes GET et HEAD, le serveur doit retourner un code statut HTTP 304 (Not Modified).

Êtes-vous satisfait ?

Table des matières

Contactez-nous

Powered by HelpDocs (opens in a new tab)