Edit me

Introduction

Cette documentation reprend les grandes lignes du document Epifiles - Évolution de l’API pour l’ONG.

Le besoin exprimé est de mettre à disposition des utilisateurs terrain d’Homère et Saga des mises à jour de ces applications sur Epifiles. Les mises à jour seront automatiquement téléchargées par le terrain et installées. Le système reposerait sur des scripts PHP pilotés par l’application Delphi, supportant les coupures réseau et fonctionnant avec des connexions lentes.

Rappel

Si la structure de groupes est la suivante :

group_epifiles.png

Et qu’un entrepôt est configuer sur le groupe ACF :

entrepot_epifiles.png

Alors nous avons :

entrepot_zone_epifiles.png

Upload

Paramètres

Nom Unique Optionnel Description
id Y N Identifiant unique utilisé pour créer un dossier du même nom où sera stocker le fichier de résultat info.xml généré par le script
username Y N Identifiant de connexion
password Y N Mot de passe
repository Y Y Nom de l’entrepôt
group Y Y Nom de la zone dans l’entrepôt.
Le paramètre est optionnel si l’utilisateur est dans une seule zone, sinon il faut déclencher une erreur.
file N N Chemin du fichier à envoyer
delete_uploaded Y Y Indique s’il faut supprimer le(s) fichier(s) une fois envoyé(s).
timeout Y Y Durée du timeout en minutes (par défaut à 24h)
chunk_size Y Y Taille des chunks en octets

OU

Nom Unique Optionnel Description
id Y N Identifiant unique utilisé pour créer un dossier du même nom où sera stocker le fichier de résultat info.xml généré par le script
delete Y N Indique qu’il faut supprimer le répertoire temporaire et tout son contenu (donc le fichier de résultat info.xml).

Exemples

# Envoi d’un fichier
php upload.php id=42 username=foo password=bar file=version.txt

# Envoi de plusieurs fichiers
php upload.php id=43 username=foo password=bar file=version_1.txt file=version_2.txt

# Envoi d’un fichier dans la zone VERSION de l\'entrepôt ACF
php upload.php id=44 username=foo password=bar repository=ACF group=VERSION file=version_1.txt

# Envoi d’un fichier dans la zone VERSION de l\'entrepôt ACF et suppression après envoi
php upload.php id=45 username=foo password=bar repository=ACF group=VERSION file=version_1.txt delete_uploaded=true

# Changement du timeout
php upload.php id=42 username=foo password=bar repository=ACF group=VERSION file=version_1.txt timeout=60

# Changement de la taille des chunks
php upload.php id=42 username=foo password=bar repository=ACF group=VERSION file=version_1.txt chunk_size=1048576

# Nettoyage
php upload.php id=45 delete=true

Si le nom du fichier, ou le nom de l’entrepôt contiennent des espaces, il faut les encadrer par des guillemets.

php download.php id=46 username=foo password=bar file=”Install Homère.exe”

Download

Paramètres

Nom Unique Optionnel Description
id Y N Identifiant unique utilisé pour créer un dossier du même nom où sera stocker le fichier de résultat info.xml généré par le script
username Y N Identifiant de connexion
password Y N Mot de passe
repository Y Y Nom de l’entrepôt
group Y Y Nom de la zone dans l’entrepôt
file N Y Nom du fichier à télécharger.Si absent, tous les fichiers sont téléchargés.
timeout Y Y Durée du timeout en minutes (par défaut à 24h)
chunk_size Y Y Taille des chunks en octets

OU

Nom Unique Optionnel Description
id Y N Identifiant unique utilisé pour créer un dossier du même nom où sera stocker le fichier de résultat info.xml généré par le script
delete Y N Indique qu’il faut supprimer le répertoire temporaire et tout son contenu (donc le fichier de résultat info.xml et les fichiers téléchargés).

Exemples

# Téléchargement de tous les fichiers
php download.php id=42 username=foo password=bar

# Téléchargement de tous les fichiers de l'entrepôt ACF
php download.php id=43 username=foo password=bar repository=ACF

# Téléchargement de tous les fichiers des zones VERSION
php download.php id=43 username=foo password=bar group=VERSION

# Téléchargement de tous les fichiers de la zone VERSION de l'entrepôt ACF
php download.php id=43 username=foo password=bar repository=ACF group=VERSION

# Téléchargement du fichier version.txt des zones VERSION
php download.php id=44 username=foo password=bar group=VERSION file=version.txt

# Téléchargement des fichiers install.exe et readme.rtf de la zone VERSION
php download.php id=45 username=foo password=bar group=VERSION file=install.exe file=readme.rtf

# Téléchargement des fichiers *.txt des zones VERSION
php download.php id=45 username=foo password=bar group=VERSION file=*.txt

# Changement du timeout
php download.php id=42 username=foo password=bar timeout=60

# Changement de la taille des chunks
php download.php id=45 username=foo password=bar group=VERSION file=install.exe file=readme.rtf chunk_size=1048576

# Suppression des fichiers générés par le téléchargement
php download.php id=45 delete=true

Si le nom du fichier, ou le nom de l’entrepôt contiennent des espaces, il faut les encadrer par des guillemets.

php download.php id=46 username=foo password=bar file=”Install Homère.exe”

Delete

Paramètres

Nom Unique Optionnel Description
id Y N Identifiant unique utilisé pour créer un dossier du même nom où sera stocker le fichier de résultat info.xml généré par le script
username Y N Identifiant de connexion
password Y N Mot de passe
repository Y Y Nom de l’entrepôt
group Y Y Nom de la zone dans l’entrepôt
file N Y Nom du fichier à supprimer.Si absent, tous les fichiers sont supprimer.
timeout Y Y Durée du timeout en minutes (par défaut à 24h)

OU

Nom Unique Optionnel Description
id Y N Identifiant unique utilisé pour créer un dossier du même nom où sera stocker le fichier de résultat info.xml généré par le script
delete Y N Indique qu’il faut supprimer le répertoire temporaire et tout son contenu (donc le fichier de résultat info.xml).

Exemples

# Supression de tous les fichiers
php delete.php id=42 username=foo password=bar

# Supression de tous les fichiers de l'entrepôt ACF
php delete.php id=43 username=foo password=bar repository=ACF

# Supression de tous les fichiers des zones VERSION
php delete.php id=43 username=foo password=bar group=VERSION

# Supression de tous les fichiers de la zone VERSION de l'entrepôt ACF
php delete.php id=43 username=foo password=bar repository=ACF group=VERSION

# Supression du fichier version.txt des zones VERSION
php delete.php id=44 username=foo password=bar group=VERSION file=version.txt

# Supression des fichiers install.exe et readme.rtf de la zone VERSION
php delete.php id=45 username=foo password=bar group=VERSION file=install.exe file=readme.rtf

# Supression des fichiers *.txt des zones VERSION
php delete.php id=45 username=foo password=bar group=VERSION file=*.txt

# Changement du timeout
php delete.php id=42 username=foo password=bar timeout=60

# Supression des fichiers générés par le téléchargement
php delete.php id=45 delete=true

Si le nom du fichier, ou le nom de l’entrepôt contiennent des espaces, il faut les encadrer par des guillemets.

php delete.php id=46 username=foo password=bar file=”Install Homère.exe”

TestUserLogin

Paramètres

Nom Unique Optionnel Description
id Y N Identifiant unique, sert à retrouver le fichier xml généré par le script et qui donne le statut de la suppression
username Y N Identifiant de connexion
password Y N Mot de passe

OU

Nom Unique Optionnel Description
id Y N Identifiant unique utilisé pour créer un dossier du même nom où sera stocker le fichier de résultat info.xml généré par le script
delete Y N Indique qu’il faut supprimer le répertoire temporaire et tout son contenu (donc le fichier de résultat info.xml).

Exemples

# Test du couple charles / Z6d45tF
php testuserlogin.php id=7 username=charles password=Z6d45tF

ListFiles

Cette méthode permet de lister les fichiers qui ont été déposés dans des zones ou entrepôts.

A noter : les entrepôts et les zones correspondent à des groupes au sein de l’application Epifiles et il n’y a aucune contrainte quant à l’unicité des nom des groupes. Ainsi, demander la liste des fichiers contenus dans la zone “VERSION” revient à demander la liste des fichiers contenus dans toutes les zones nommées “VERSION” que l’utilisateur peut “voir” (sur lesquelles il a des droits). De même demander les fichiers contenus dans la zone “VERSION” de l’entrepôt “ACF” peut mener à des résultats différents selon si l’utilisateur a des droits sur SAGA > ACF > VERSION uniquement ou également sur HOMERE > ACF > VERSION.

Paramètres

Nom Unique Optionnel Description
id Y N Identifiant unique utilisé pour créer un dossier du même nom où sera stocker le fichier de résultat info.xml généré par le script
username Y N Identifiant de connexion
password Y N Mot de passe
repository Y Y Nom de l’entrepôt ciblé. Un nom d’entrepôt ou de zone est obligatoire.
group Y Y Nom de la zone ciblée. Un nom d’entrepôt ou de zone est obligatoire.
timeout Y Y Durée du timeout en minutes (par défaut à 1h)

OU

Nom Unique Optionnel Description
id Y N Identifiant unique utilisé pour créer un dossier du même nom où sera stocker le fichier de résultat info.xml généré par le script
delete Y N Indique qu’il faut supprimer le répertoire temporaire et tout son contenu (donc le fichier de résultat info.xml).

Exemples

# Liste de tous les fichiers des entrepôts ACF visibles par l'utilisateur foo
php listfiles.php id=43 username=foo password=bar repository=ACF

# Liste de tous les fichiers des zones VERSION visibles par l'utilisateur foo
php listfiles.php id=43 username=foo password=bar group=VERSION

# Liste de tous les fichiers des zones VERSION des entrepôts ACF visibles par l'utilisateur foo
php listfiles.php id=43 username=foo password=bar repository=ACF group=VERSION

# Suppression du 43 contenant le fichier info.xml
php listfiles.php id=43 delete=true

Résultat

<info id="43">
<status>finished</status>
<timeout>60</timeout>
<disconnect_count>0</disconnect_count>
<files_count>7</files_count>
<files>
    <file name="Sagainstallpatch.exe" size="30158008">
        <manifest_id>6303</manifest_id>
        <file_id>10534</file_id>
    </file>
    <file name="readme.rtf" size="5693605">
        <manifest_id>6295</manifest_id>
        <file_id>15291</file_id>
    </file>
    <file name="version.txt" size="138">
        <manifest_id>6293</manifest_id>
        <file_id>10529</file_id>
    </file>
    <file name="readme.rtf" size="5655109">
        <manifest_id>6221</manifest_id>
        <file_id>15001</file_id>
    </file>
    <file name="Sagainstallpatch.exe" size="30172390">
        <manifest_id>6271</manifest_id>
        <file_id>1049</file_id>
    </file>
    <file name="version.txt" size="138">
        <manifest_id>717</manifest_id>
        <file_id>4997</file_id>
    </file>
    <file name="version.txt" size="138">
        <manifest_id>592</manifest_id>
        <file_id>482</file_id>
    </file>
</files>
</info>