FTP (Gestionnaire de message)

De Wiki1000
Version du 17 septembre 2014 à 15:54 par Syfre (discuter | contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Ce type de gestionnaire permet d'utiliser un serveur de fichier FTP comme une file d'attente.

  • Consommer un message revient à lire (GET) les fichiers présents dans un répertoire du serveur.
  • Produire un message revient à envoyer un fichier (PUT) dans un répertoire du serveur.

Paramétrage de la file d'attente

Propriété Valeur
QueueConnectionInfos URL de définition du service FTP (voir plus bas)
QueueTopic Nom de répertoire par défaut si non renseigné dans QueueConnectionInfos.

La chaine QueueConnectionInfos peut utiliser les formats suivant :

ftp://user:password@server
ftp://user:password@server/directory
ftp://user:password@server/directory?parameters

Dbmqueue ftp.png

Paramètres de l'url

Ces paramètres peuvent être ajoutés à l'URL définissant la file d'attente pour paramétrer le comportement de la file.

Nom Sens Usage Défaut
user cnx Utilisateur
password cnx Mot de passe
sndDirectory production Nom du paramètre du message contenant le répertoire destination du fichier sur le serveur Directory,Topic
sndFileName production Nom du paramètre du message contenant le nom du fichier destination sur le serveur FileName,AttachementName
sndContent production Nom du paramètre du message contenant le contenu du fichier Content,Subject

Messages produits

Réaliser une opération InQueue sur une file de type FTP revient à écrire un fichier sur le serveur FTP.

  • Répertoire destination
Le répertoire destination est déterminé par paramètre Directory du message. Si ce nom n'est pas défini le sujet de la file d'attente est utilisé.
  • Nom du fichier
Le nom du fichier sur le serveur est déterminé par paramètre Filename. Si le nom du fichier n'est pas défini un nom unique est utilisé par tirage d'un GUID. Dans ce cas le nom tiré est ajouté aux paramètres du message.
  • Contenu
Si le message (TdbmQueueMessage) contient un contenu binaire (BinaryContent) celui-ci est envoyé sur le serveur. Si le message ne contient pas de contenu binaire le contenu du fichier est défini par le paramètre Content.
Tip-20px.png Tip : Les nom des paramètres peuvent être substitués par le paramétrage de l'url, voir ci-dessus

Exemple :

var msg:TdbmQueueMessage; idx:Integer;
begin
  // Store a file on the FTP server defined by QUEUEFTP under the topic of the queue
  // The name of the file will be a GUID
  msg := TdbmQueueMessage.Create;
  msg.QueueName := 'QUEUEFTP';
  msg.BinaryContent.LoadFromFile('c:\image.jpg');
  msg.Post;
 
  // Store a file on the FTP server defined by QUEUEFTP under the topic "ThisTopic"
  // The name of the file will be "ThisFileName"
  msg := TdbmQueueMessage.Create;
  msg.QueueName := 'QUEUEFTP';
  msg.AddParameter('Directory','ThisTopic');
  msg.AddParameter('FileName','ThisFileName');
  msg.BinaryContent.LoadFromFile('c:\image.jpg');
  msg.Post;
end;

Messages consommés

Réaliser une opération DeQueue sur une file de type FTP revient à lire un répertoire du serveur FTP.

Les opérations réalisés pour simuler le comportement d'un Gestionnaire de Message est le suivant :

  • La session FTP est ouverte.
  • La session FTP est positionnée dans le répertoire de travail; ce répertoire correspondant au sujet de la file.
  • Un répertoire temporaire privé est créé, ce répertoire est un sous répertoire du répertoire de travail.
  • Les fichiers disponibles dans le répertoire de travail sont récupérés.
  • Pour chaque fichier
Tentative de renommage du fichier dans le répertoire temporaire.
Si le fichier existe dans le répertoire temporaire alors il est obtenu et traité comme un message; sinon il est ignoré.
Si la consommation du message est acquitté (ACK) le fichier temporaire est supprimé.
Si la consommation du message est annulée (NACK) le fichier est renommé sous son nom d'origine et replacé dans le répertoire de travail.

Les paramètres positionnés pour un message consommé sont les suivants :

Paramètre Valeur
UniqueID Identifiant unique du message (*)
MessageID Identifiant unique du message (*)
MsgOID Identifiant unique du message (*)
MsgTopic Répertoire de travail
Directory Répertoire de travail
FileName Nom du fichier
TempDir Nom du répertoire temporaire
TempName Nom du fichier dans le répertoire temporaire
TempPath Chemin relatif au répertoire de travail du fichier temporaire
FileDate Date et heure du fichier retournée par le serveur FTP
FileSize Taille du fichier
ReceiveDate Date et heure de réception du fichier
BinaryContent Contenu du fichier

(*) Le serveur FTP ne fournissant pas d'identifiant unique un GUID est alloué au message.

Voir aussi:

Outils personnels