3. FICHIERS
Les données, telles que body parts, pièces jointes ou liste des destinataires peuvent être encapsulées dans l'ordre de routage. Cependant, si elles sont volumineuses et souvent utilisées, en particulier les pièces jointes ou listes de destinataires, ou qu'il s'agisse de templates personnalisables, il peut être utile d'uploader ces éléments préalablement sur le système, à l'aide de l'api 'files'.
Chaque compte utilisateur dispose d'un espace de stockage, dont l'organisation est laissée libre, en particulier l'arborescence des répertoires. Lors de l'upload d'un fichier, si les répertoires précisés dans le chemin d'accès n'existent pas, ils seront automatiquement créés.
Les fichiers uploadés peuvent être ensuite référencés dans les objets JSON sous la forme "@<path>".
POST api/files/<path>
Uploade un fichier dans le répertoire utilisateur. Si contient des répertoires, ils seront automatiquement créés. 3 niveaux de sous-répertoires autorisés. L’opération échoue si le fichier existe déjà.
PUT api/files/<path>
GET api/files/
Idem POST, à la difference que le fichier uploadé écrase toute version précédente.
Retourne la liste des fichiers du répertoire racine du compte utilisateur.
GET api/files/<path>
DELETE api/files/<path>
Si 'path' est suffixé par un '/' retourne la liste des fichiers du répertoire 'path/', sinon, sinon le fichier de nom 'path'.
Supprime le fichier.
Method
Description
Ces méthodes permettent donc l’upload de listes de diffusion, bodys, pièces jointes et images au format natif, sans conversion Base64 et encaspulation dans un objet JSON.
Exemple d’upload du fichier news5_body.htm dans le sous-répertoire \DATA\NEWS5 du compte utilisateur :
POST api/files/DATA/NEWS5/news5_body.htm HTTP/1.1
Authorization: <apikey>
Content-Type: text/html
Content-Lenght: <taille du fichier htm>
<html>This is the html body… </html>
-----------------------------------------------------------------------------------------------HTTP/1.1 200 OK
Content-Type: application/json
Content-Lenght: <taille du fichier json en octets>
{
"stamp" : {
"date" : <date de prise en compte YYMMDDhhmmss>,
"err" : <code d’erreur, 0=OK>,
"msg" : <description du code d’erreur>
}
}