FTP (Gestionnaire de message)

De Wiki1000

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

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 :


  • Les fichiers disponibles sont récupérés
  • Pour chaque fichier
Tentative de renommage du fichier dans un répertoire temporaire privé
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.

Voir aussi:

Outils personnels