# Moteur de transformation
# Architecture
Le serveur TE
comporte plusieurs services qui sont :
Request Server
Ce serveur est celui qui est en écoute sur le réseau et qui gère la communication entre Anakeen Platform et TE.
On peut catégoriser les demandes en deux types :- Demande de conversion,
- Demandes de récupération de résultat.
Dans le cas d'une demande de conversion, il stocke en local le fichier et les paramètres de la transformation demandée (nom du moteur à appliquer, URL de callback à appeler en fin de transformation) dans une tâche qui est alors en attente de traitement.
Dans le cas d'une demande de récupération de résultat, il va inspecter la tâche correspondante pour voir si elle a été traitée et fournir le fichier de résultat.
Rendering Server
Ce serveur tourne en tâche de fond, et scrute continuellement pour voir s'il y a de nouvelles tâches en attente de traitement.
Lorsqu'une nouvelle tâche en attente de traitement est trouvée, il exécute alors le moteur de transformation associé avec le fichier soumit par le client.
Si la tâche s'est correctement déroulée, il enregistre le fichier produit et appelle l'éventuelle URL de callback de la tâche pour notifier Anakeen Platform que le résultat de la conversion peut être récupéré.OOO Server
Ce serveur est une instance de OpenOffice lancée en mode serveur qui est utilise par certains moteurs de transformations.
# Cinématique
# Échange Client/Serveur
La communication entre Anakeen Platform et le Request Server permet au client de :
- Demander la conversion d'un fichier avec un moteur donnée,
- Demander le statut d'une tâche de conversion,
- Demander la liste des moteurs de transformation supporté par le serveur TE avec, pour chacun, la liste des types MIME des fichiers compatibles en entré,
- Demander la liste des tâches et de leurs journaux (management/monitoring),
- Demander les journaux d'une tâche en particulier,
- Demander les informations générale du serveur TE (version, charge, etc...),
- Demander l'exécution des selftests,
- Demander le résultat d'une tâche réussie,
- Demander l'interruption d'une tâche,
- Demander la purge de l'historique des tâches et des journaux.
# Cycle de traitement des demandes
# Request server
- Lors de la réception d'une demande de conversion, le service
Request server
crée une tâche dans l'étatB
(Beginning), - La tâche passe ensuite dans l'état
T
(Transferring) durant le temps qu'il faut pour lire le fichier de la requête, - Une fois le fichier lu et enregistré, la tâche passe dans l'état
W
(Waiting) pour indiquer qu'elle est prête à être traitée, - Si la tâche est en erreur, son statu est positionné à
K
(Kockout), - Si la tâche est interrompue, son statut est positionné à
I
(Interrupted).
# Rendering server
- En parallèle, le service
Renderer server
scrute les nouvelles tâches qui sont en attente de traitement (W
), - Lorsqu'une nouvelle tâche est prise pour exécution, la tâche passe en status
P
(Processing), - Si la conversion est réussie, la tâche passe à l'état
D
(Done) et Anakeen Platform est notifié via l'URL de callback, - Si la tâche est en erreur, son statu est positionné à
K
(Kockout), - Si la tâche est interrompue, son statut est positionné à
I
(Interrupted).
# Création d'un moteur
# Protocole moteur
Un moteur est un exécutable (ou un shell-script) qui répond au protocole suivant:
Arguments
L'exécutable est appelé avec deux arguments qui sont :
- le fichier à transformer (entrée),
- un fichier temporaire (existant) dans lequel le résultat doit être inscrit (sortie).
Exit code
L'exécutable doit se terminer avec :
- un exit code égal à
0
si la conversion est réussie,- un exit code différent de
0
si la conversion a échoué.
Messages d'erreurs
L'exécutabe émet ses messages d'erreurs sur
STDERR
.Variables d'environnement
Les variables d'environnement suivantes sont positionnées lors de l'exécution du moteur : -
TE_HOME
: contient un chemin d'accès à la racine du répertoire d'installation de TE.Exemple : Script Bash conforme au protocole des moteurs décrit ci-dessus
#!/bin/bash
# Le premier argument est le fichier à transformer.
IN=$1
# Le deuxième argument est un fichier temporaire dans lequel
# sera inscrit le résultat.
OUT=$2
# Notre moteur compte simplement le nombre de lignes
# dans le fichier d'entré, et inscrit le résultat dans
# le fichier de sortie.
wc -l "$IN" > "$OUT"
if [ $? -ne 0 ]; then
# En cas d'erreur, on émet un message sur STDERR
echo "Erreur lors de l'exécution du moteur." 1>&2
# Et on se termine avec un exit code <> 0
exit 1
fi
# La conversion est réussi, on se termine avec
# un exit code = 0
exit 0
# Enregistrement d'un moteur
Pour être utilisable par TE, le moteur doit être exécutable et être déposé dans le répertoire $TE_HOME/lib/engines
.
Ensuite, le moteur doit être enregistré auprès de TE afin de déclarer son nom de conversion et les types MIMES des
fichiers qu'il supporte en entrée.
L'enregistrement des moteurs est géré dans la table engine
:
INSERT INTO engine (name, mime, command, comment) VALUES (
'linecount',
'text/plain',
'@TE_HOME@/lib/engines/linecount',
'Compte le nombre de lignes dans un fichier texte'
);
Dans l'exemple ci-dessus, on déclare que notre shell-script aura comme nom de transformation linecount
et qu'il est
compatible avec les fichiers texte brut de type MIME text/plain
.
Note
La chaîne @TE_HOME@
sera automatiquement remplacée par la racine du répertoire d'installation de TE lors de
l'exécution du moteur.
# Classe Client
La classe \Anakeen\TransformationEngine\Client
implémente l'API cliente pour l'utilisation d'un serveur TE.
Cette API cliente est fournie par le module transformation
.
Elle permet de soumettre des fichiers pour transformation, récupérer le status des tâches ainsi créées, récupérer le
fichier produit par ces tâches et interrompre des tâches.
# Constructeur
new \Anakeen\TransformationEngine\Client(string $host, int $port);
# Liste des paramètres
host (string)
Le nom d'hôte (ou l'adresse IP) du serveur TE auquel doit se connecter le client.
port (int)
Le port TCP du serveur TE auquel doit se connecter le client.
# Exemple
L'adresse et le port renseignés dans les paramètres applicatifs de Anakeen Platform sont accessibles avec la fonction \ContextParameterManager::getScopedParameterValue() et les paramètres TE_HOST et TE_PORT :
use Anakeen\Core\Internal\ContextParameterManager;
$clientTE = new \Anakeen\TransformationEngine\Client(
\ContextParameterManager::getScopedParameterValue("TE_HOST"),
\ContextParameterManager::getScopedParameterValue("TE_PORT")
);
# Méthodes
# SendTransformation
Envoie d'un fichier pour transformation
# Description
/**
* send a request to do a transformation
*
* @param string $te_name Engine name
* @param string $fkey foreign key
* @param string $filename the path where is the original file
* @param string $callback url to activate after transformation is done
* @param array &$info transformation task info return "tid"=> ,"status"=> ,"comment=>
*
* @return string error message, if no error empty string
*/
string sendTransformation($te_name, $fkey, $filename, $callback, &$info)
Créer une tâche pour la transformation du fichier $filename
avec le moteur de transformation $te_name
.
l'identifiant de la tâche tid
créé sur le serveur TE est retourné dans la structure $info
.
Si une URL de callback est fournie via l'argument $callback
, celle-ci est alors appelée lorsque la conversion est
terminée avec un argument HTTP tid
contenant l'identifiant de la tâche : c'est alors à la charge du code déclenché par
le callback de venir récupérer le résultat à l'aide de l'identifiant de la tâche tid
.
Le code peut aussi interroger régulièrement le serveur TE pour voir le status de la tâche à l'aide de l'identifiant
tid
retourné dans la structure $info
.
# Liste des paramètres
te_name (string)
Le nom du moteur de transformation à appliquer.
fkey (string)
Un identifiant à la discrétion de l'appelant.
filename (string)
Le chemin d'accès du fichier à convertir.
callback (string)
l'URL à appeler à la fin de la transformation
info (array)
Informations retournées de la tâche créée sur le serveur TE.
# Valeurs de retour
La méthode sendTransformation()
retourne une chaîne non vide, contenant un message d'erreur, si la création de la
tâche de transformation a échoué, ou une chaîne vide si la transformation a été correctement soumise au serveur.
Si la transformation a été correctement soumise au serveur, la variable $info
contient les informations de la tâche
créée sur le serveur :
array(
"status" => (string) $tastStatus,
"tid" => (string) $taskId,
"comment" => (string) $transformationComment
);
Liste des constantes de statut de tâche :
\Anakeen\TransformationEngine\Client::TASK_STATE_BEGINNING (B)
Demande de conversion reçue.
\Anakeen\TransformationEngine\Client::TASK_STATE_TRANSFERRING (T)
Lecture/transfert du fichier à convertir.
\Anakeen\TransformationEngine\Client::TASK_STATE_ERROR (K)
Erreur.
\Anakeen\TransformationEngine\Client::TASK_STATE_SUCCESS (D)
Transformation réussie.
\Anakeen\TransformationEngine\Client::TASK_STATE_RECOVERED (R)
Restauration des données par le client.
\Anakeen\TransformationEngine\Client::status_inprogress
En cours de traitement.
\Anakeen\TransformationEngine\Client::status_waiting
Attente de traitement par le moteur.
\Anakeen\TransformationEngine\Client::TASK_STATE_INTERRUPTED (I)
Interrompue.
\Anakeen\TransformationEngine\Client::status_done
Conversion terminée.
Si la transformation n'a pa pu être soumise au serveur ($err
retourne un message non vide), la variable $info
contient le code de l'erreur dans la propriété status
:
array(
'status' =>
\AnakeenTransformationEngineClient::error_connect |
\AnakeenTransformationEngineClient::error_noengine |
\AnakeenTransformationEngineClient::error_sendfile |
\AnakeenTransformationEngineClient::error_emptyfile |
\AnakeenTransformationEngineClient::error_convert
);
Les constantes d'erreur sont :
\AnakeenTransformationEngineClient::error_connect
Le client n'a pas pu établir une connexion avec le serveur TE.
Vérifier que les paramètres de connexionTE_HOST
etTE_PORT
sont corrects et que le client peut se connecter sur l'hôte et le port TCP du serveur TE.\AnakeenTransformationEngineClient::error_noengine
Le nom du moteur de transformation demandé n'est pas connu par le serveur TE.
Vérifier que le moteur demandé est bien déclaré sur le serveur TE.\AnakeenTransformationEngineClient::error_sendfile
Le fichier n'a pas pu être envoyé correcteur au serveur TE.
Voir le message d'erreur retourné parsendTransformation()
pour plus de détails sur l'erreur rencontrée.\AnakeenTransformationEngineClient::error_emptyfile
Le fichier soumis pour transformation n'existe pa ou est vide.
Vérifier que le fichier$filename
soumis pour transformation existe et n'est pas vide.\AnakeenTransformationEngineClient::error_convert
Le fichier soumis pour transformation n'a pas pu être converti.
# Erreurs / Exceptions
Aucune.
# Exempples
use Anakeen\TransformationEngine\Client;
$clientTE = new Client("mon-serveur.transformation.engine.com", 51968);
$filename = '/tmp/hello.txt';
$textContent = 'Hello world!';
file_put_contents($filename, $textContent);
$fkey = sprintf("test-conversion-%s", uniqid());
$callback = '';
$info = array();
$err = $clientTE->sendTransformation(
'pdf' /* Nom de la conversion à appliquer : 'pdf' */,
$fkey /* Identifiant de la conversion côté Anakeen Platform */,
$filename /* Chemin du fichier à convertir */,
$callback /* URL de callback pour la notification de fin de tâche */,
$info /* Information en retour de la tâche de conversion créée */
);
if ($err != '') {
throw new Exception(sprintf("sendTransformation() returned with error : %s", $err));
}
/* Si la demande est acceptée, l'identifiant de la conversion est retourné dans la structure $info */
var_export($info);
- Résultat :
array(
'tid' => '5d92ff7f7e3008.91895268',
'status' => 'W',
'comment' => '12bytesreadin0.021sec'
);
# getInfo
Récupérer les informations sur une tâche de transformation.
/**
* send a request to get information about a task
*
* @param int $tid task identifier
* @param array &$info transformation task info return "tid"=> ,"status"=> ,"comment=>
*
* @return string error message, if no error empty string
*/
string getInfo($tid, &$info)
Une fois la tâche soumise (à l'aide de sendTransformation()
, le client peut interroger régulièrement ( ou dans le code
exécuté par le callback du serveur TE) la tâche à partir de son tid
pour voir si elle est terminée(ou en attente, en
échec, etc...)).
# Liste des paramètres
tid (string)
Identifiant de la tâche dont on souhaite obtenir les informations.
info (array)
Informations retournées de la tâche.
# Valeur de retour
La méthode getInfo()
retourne une chaîne non vide, contenant le message d'erreur, si la demande d'information a
échouée, ou une chaîne vide si la demande d'information est réussie. Si la demande d'information est réussie, la
variable $info
contient les informations de la tâche.
Les propriétés de $info
peuvent être :
array(
'tid' => (string) $taskId,
'infile' => (string) $inputFile,
'inmime' => (string) $inputFileMimeType,
'outfile' => (string) $outputFile,
'engine' => (string) $transformationName,
'status' => (string) $status,
'callback' => (string) $clientCallbackURL,
'callreturn' => (string) $callbackReturn,
'fkey' => (string) $clientForeignKey,
'pid' => (string) $transformationPID,
'comment' => (string) $transformationComment
);
tid
Identifiant de la tâche.
infile
Chemin d'accès (sur le serveur) du fichier à transformer.
inmime
Type MIME du fichier à transformer.
outfile
Chemin du fichier résultat de la transformation.
engine
Moteur de transformation demandé par le client.
status
Status de la tâche.
Liste des constantes de statut de tâche :\Anakeen\TransformationEngine\Client::TASK_STATE_BEGINNING (B)
Demande de conversion reçue.
\Anakeen\TransformationEngine\Client::TASK_STATE_TRANSFERRING (T)
Lecture/transfert du fichier à convertir.
\Anakeen\TransformationEngine\Client::TASK_STATE_ERROR (K)
Erreur.
\Anakeen\TransformationEngine\Client::TASK_STATE_SUCCESS (D)
Transformation réussie.
\Anakeen\TransformationEngine\Client::TASK_STATE_RECOVERED (R)
Restauration des données par le client.
\Anakeen\TransformationEngine\Client::status_inprogress
En cours de traitement.
\Anakeen\TransformationEngine\Client::status_waiting
Attente de traitement par le moteur.
\Anakeen\TransformationEngine\Client::TASK_STATE_INTERRUPTED (I)
Interrompue.
\Anakeen\TransformationEngine\Client::status_done
Conversion terminée.
callback
URL de callback fournie par le client.
callreturn
Message retouné par l'appel à l'URL de callback.
fkey
Clef
fkey
soumise par le client lors de la demande de transformation.pid
Le
PID
du processus de transformation lorsque celui-ci tourne.comment
Dernier message de la tâche.
# Erreurs/Exceptions
La méthode retourne une chaîne non vide contenant le message d'erreur si les informations de la tâche n'ont pu être récupérées.
# Exemple
use Anakeen\TransformationEngine\Client;
use Anakeen\TransformationEngine\ClientException;
$clientTE = new Client("mon-serveur.transformation.engine.com", 51968);
$tid = '5d92ff7f7e3008.91895268';
$info = array();
$err = $clientTE->getInfo($tid /* Identifiant de la tâche qu'on souhaite interroger */, $info);
if ($err != '') {
throw new ClientException(sprintf("getInfo() returned with error: %s", $err));
}
var_export($info);
array(
'tid' => '5d92ff7f7e3008.91895268',
'infile' => '/var/tmp/te-task-XM6AmF/tes-7mmj7z.txt',
'inmime' => 'text/plain;',
'outfile' => '/var/tmp/te-task-XM6AmF/ter-PqQfRA.pdf',
'engine' => 'pdf',
'status' => 'D',
'callback' => '',
'callreturn' => '',
'fkey' => 'test-conversion-5d92fefe55149',
'pid' => '',
'comment' => 'generatedby[
/opt/dynacase-te-1.4.1-0.20160519.085812/lib/engines/txt2pdf
]command;'
);
# getTransformation
Récupérer le fichier produit par la transformation.
/**
* send a request to retrieve a transformation and to erase task from server
* the status must be D (Done) or K (Done but errors).
*
* @param string $tid Task identification
* @param string $filename the path where put the file (must be writeable)
*
* @return string error message, if no error empty string
*/
string getTransformation($tid, $filename)
Permet de récupérer dans le fichier local $outputFile
le résultat de la transformation d'identifiant de tâche $tid
.
# Liste des paramètres
tid (string)
Identifiant de tâche dont on souhaite obtenir le fichier résultat.
outputFile (string)
Chemin local du fichier dans lequel sera stocké le fichier résultant de la tâche.
# Valeur de retour
La méthode getTransformation()
retourne une chaîne non vide, contenant le message d'erreur, si l'opération n'a pu être
réalisée, ou une chaîne vide si l'opération est réussie.
# Erreurs/Exceptions
La méthode retourne une chaîne non vide contenant le message d'erreur si l'opération n'a pu être réalisée.
# Exemples
use Anakeen\TransformationEngine\Client;
use Anakeen\TransformationEngine\ClientException;
$clientTE = new Client("mon-serveur.transformation.engine.com", 51968);
$tid = '5d92ff7f7e3008.91895268';
$tmpFile = tempnam("/tmp/", 'hello');
$err = $clientTE->getTransformation(
$tid /* Identifiant de la tâche dont on souahite récupérer le résultat */,
$tmpFile /* Fichier dans lequel inscrire le résultat */
);
if ($err != '') {
throw new ClientException(sprintf("getTransformation() returned with error: %s", $err));
}
printf("Fichier '%s' : %d octets\n", $tmpFile, filesize($tmpFile));
Fichier'/tmp/hellokeR061': 4297octets
# abortTransformation
Interrompre une tâche.
/**
* Abort a transformation and delete associated files on the server
*
* @param string $tid Task identification
*
* @return string error message, if no error empty string
*/
string abortTransformation($tid)
Permet d'interrompre le traitement d'une tâche.
# Liste des paramètres
- tid (string)
Identifiant de la tâche dont on souhaite interrompre le traitement.
# Valeur de retour
La méthode abortTransformation()
retourne une chaîne non vide contenant le message d'erreur si l'opération n'a pu être
réalisée, ou une chaîne vide si l'opération est réussie.
# Erreurs/Exceptions
La méthode retourne une chaîne non vide contenant le message d'erreur si l'opération n'a pu être réalisée.
# Exemple
use Anakeen\TransformationEngine\Client;
use Anakeen\TransformationEngine\ClientException;
$clientTE = new Client("aeres-te.xen.corp.anakeen.com", 51968);
$tid = '5d92ff7f7e3008.91895268';
$err = $clientTE->abortTransformation($tid /* Identifiation de la tâche qu'on souhaite interrompre */);
if ($err != '') {
throw new ClientException(sprintf("abortTransformation() returned with error: %s", $err));
}
Notes
L'interruption de la tâche :
- Tue le processus de rendering si ce dernier est actif (
pid
de la tâche est différent de 0), - Les fichiers
infile
etoutfile
de la tâche sont conservés jusqu'à ce que la tâche soit supprimée.
# purgeTransformation
Supprime la demande de transformation
/**
* Purge a single task given its identifier.
*
* @param string $tid task's identifier
*
* @return string client error message on failure or empty string on success
*/
string purgeTransformation($tid)
Les fichiers d'entrée et de sortie liés à la tâche sont supprimés ainsi que la référence à la tâche.
Avertissements
La suppression ne vérifie pas si la tâche est en cours d'exécution. Par conséquent, si la demande est en cours d'exécution il faut au préalable l'interrompre (voir la méthode abortTransformation()).
# Liste des paramètres
- tid (string)
Identifiant de la tâche qu'on souhaite supprimer.
# Valeur de retour
La méthode getTransformation()
retourne une chaîne non vide, contenant le message d'erreur, si l'opération n'a pu être
réalisée, ou une chaîne si l'opération est réussie.
# Erreurs/Exceptions
La méthode retourne une chaîne non vide contenant le message d'erreur si l'opération n'a pu être réalisée.
# Exemple
use Anakeen\TransformationEngine\Client;
use Anakeen\TransformationEngine\ClientException;
$clientTE = new Client("aeres-te.xen.corp.anakeen.com", 51968);
$tid = '5d92ff7f7e3008.91895268';
$err = $clientTE->getInfo($tid, $info);
if ($info['status'] == Client::TASK_STATE_PROCESSING) {
throw new ClientException("La transformation est en cours d'exécution. Veuillez d'abord l'interrompre.");
}
$err = $clientTE->purgeTransformation($tid);
if ($err != '') {
throw new ClientException(sprintf("Erreur lors de la suppression de la transformation '%s': %s", $tid, $err));
}
# Les moteurs
# Liste de moteur livrés en standard par TE
doc
Ce moteur convertit le fichier au format Microsoft Word 97.
Types MIME supportés par le moteur :application/vnd.oasis.opendocument.text
mergeodt
Ce moteur combine les documents OpenOffice Text (triés par leur nom) contenus dans une archive au format ZIP en un fichier au format OpenOffice Text.
Types MIME supportés par le moteur :application/zip
,application/x-zip
.
mergepdf
Ce moteur combine les documents OpenOffice Text (triés par leur nom) contenus dans une archive au format ZIP en un fichier au format PDF.
Types MIME supportés par le moteur :application/zip
,application/x-zip
.
mergepdfa
Ce moteur combine les documents OpenOffice Text (triés par leur nom) contenus dans une archive au format ZIP en un fichier au format PDF/A-1.
Types MIME spportés par le moteur :application/zip
,application/x-zip
.
odt
Ce moteur convertit le fichier en un fichier au format OpenOffice Text.
Types MIME supportés par le moteur :text/html
.
pdf
Ce moteur convertit le fichier en un fichier au format PDF.
Types MIME supportés par le moteur :application/vnd.oasis.opendocument.text
,application/vnd.oasis.opendocument.presentation
,application/vnd.oasis.opendocument.spreadsheet
,application/vnd.ms-excel
,application/msword
,application/vnd.ms-powerpoint
,application/vnd.sun.xml.writer
,application/vnd.sun.xml.calc
,application/vnd.sun.xml.impress
,application/pdf
,text/html
,text
,application/vnd.openxmlformats-officedocument.wordprocessingml.document
,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
,application/vnd.openxmlformats-officedocument.presentationml.presentation
.
pdfa
Ce moteur convertit le fichier en un fichier au format PDF/A-1.
Types MIME supportés par le moteur :application/vnd.oasis.opendocument.text
,application/vnd.oasis.opendocument.presentation
,application/vnd.oasis.opendocument.spreadsheet
,application/vnd.ms-excel
,application/msword
,application/vnd.ms-powerpoint
,application/vnd.sun.xml.writer
,application/vnd.sun.xml.calc
,application/vnd.sun.xml.impress
,text/html
,application/vnd.openxmlformats-officedocument.wordprocessingml.document
,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
,application/vnd.openxmlformats-officedocument.presentationml.presentation
.
thumbnail
Ce moteur convertit le fichier en une image (vignette) au format PNG.
Types MIME supportés par le moteur :application/vnd.oasis.opendocument.text
,application/vnd.oasis.opendocument.presentation
,application/vnd.oasis.opendocument.spreadsheet
,application/vnd.oasis.opendocument.graphics
,image
,application/pdf
;
utf8
Ce moteur converti le fichier en un fichier de texte brut UTF-8 (i.e. extraction de texte).
Type MIME supportés par le moteur :text
,application/vnd.oasis.opendocument.text
,application/vnd.oasis.opendocument.presentation
,application/vnd.oasis.opendocument.spreadsheet
,application/vnd.sun.xml.writer
,application/vnd.sun.xml.calc
,application/vnd.sun.xml.impress
,application/vnd.ms-powerpoint
,application/vnd.ms-excel
,application/msword
,application/pdf
,text/html
,application/vnd.openxmlformats-officedocument.wordprocessingml.document
,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
,application/vnd.openxmlformats-officedocument.presentationml.presentation
,text/x-mail
,application/vnd.ms-outlook
,application/mxbox
,application/x-iwork-numbers-sffnumbers
,application/x-iwork-pages-sffpages
,application/x-iwork-keynote-sffkey
,application/epub+zip
.
# La base de données
# Liste des tables
# Table task
La table task
contient les demandes de transformation.
tid (text)
Identifiant de la transformation.
infile (text)
Chemin d'accès au fichier envoyé par le lient pour conversion.
inmime (text)
Type MIME du fichier envoyé par le client pour conversion.
outfile (text)
Chemin d'accès du fichier produit par la transformation.
engine text)
Nom du moteur de transformation à appliquer au fichier
infile
.status (char)
Code de statut de la transformation.
fkey (text)
Clef étrangère envoyé par le client pour la transformation (voir Client::sendTranformation()).
callback (text)
URL de callback envoyé par le client pour la transformation.
callreturn (text)
Contenu de la réponse à l'exécution de la requête de callback.
cdate (timestamp)
Timestamp de la création de la demande de transformation.
pid (integer)
Identifiant du processus du moteur lorsque la transformation est en cours de traitement.
comment (text)
Dernier commentaire de la transformation (mis à jour durant le déroulement de la transformation).
# Table histo
La table histo
contient les messages d'informations émis durnat le traitement de la transformation.
tid (text)
Identifiant de la transformation.
date (timestamp)
Timestamp du message.
comment (text)
Message/commentaire.
# Table engine
la table engine
contient la liste des moteurs disponibles, les types MIME supportés en entrés de ces moteurs et le
chemin du moteur à exécuter.
name (text)
Nom du moteur de transformation.
mime (text)
Type MIME supporté par le moteur. Le type MIME peut être complet et dans ce cas le moteur est exécuté lorsque le type MIME du fichier correspond strictement (e.g.g
application/x-foo
acceptera des fichiers de typeapplication/x-foo
), ou partiel (e.g.application
) auquel cas le moteur sera utilisable pour tous les types MIME ayant la même base (e.g.application/x-foo
ouapplication/x-bar
).command (text)
Chemin d'accès au moteur à exécuter pour cette transformation (voir enregistrement d'un moteur).
comment (text)
Commentaire/description à la description de l'auteurdu moteur de transformation.