FTP (Gestionnaire de message)
De Wiki1000
Version du 14 juin 2013 à 15:04 par Syfre (discuter | contributions)
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.
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: