archifiltre-docs
archifiltre-docs copied to clipboard
[FEATURE] Permettre l'interaction d'Archifiltre avec des programmes tiers
Actuellement, pour agir sur Archifiltre, il est nécessaire d'intégrer des programmes. Si l'on souhaite utiliser un programme quelconque, il serait utile de mettre en place un mécanisme d'échange d'informations réciproques.
La proposition consiste à mettre en place 2 services complémentaires :
- un export pour action
- un import pour prise en compte
Cas d'utilisation 1 :
Je veux transmettre au DSI un ensemble de fichiers à supprimer et récupérer leur retour une fois l'action finie
Export d'une liste de fichiers sous forme CSV et remise au DSI
"Chemin de base";"Chemin";"Type"
"D:\MonProjet";"Sous-dossier\Thumbs.db";FILE
"D:\MonProjet";"Sous-dossier\MesNotes.txt";FILE
Une fois l'opération faite le DSI renvoie un fichier CSV à prendre en compte dans Archifiltre
"Chemin de base";"Chemin";"Commande";"Argument"
"V:\MonProjet";"Sous-dossier\Thumbs.db";REMOVE_FILE;
"V:\MonProjet";"Sous-dossier\MesNotes.txt";REMOVE_FILE;
Cas d'utilisation 2 :
Je veux taguer tous mes fichiers avec leur type mime en utilisant file
Export d'une liste de fichiers sous forme CSV et fourniture à file
"Chemin de base";"Chemin";"Type"
"/d/MonProjet";"RepertoireTest";FOLDER
"/d/MonProjet";"RepertoireTest/doc1.pdf";FILE
"/d/MonProjet";"RepertoireTest/image1.jpeg";FILE
Une fois l'opération on récupère un fichier pour intégration dans Archifiltre
"Chemin de base";"Chemin";"Commande";"Argument"
"/mnt/MonProjet";"RepertoireTest/doc1.pdf";"ADD_TAG";"mime:application/pdf"
"/mnt/MonProjet";"RepertoireTest/image1.jpeg";"ADD_TAG";"mime:image/jpeg"
Le programme python ci-dessous réalise la transformation du fichier in.csv vers le fichier out.csv
import csv
import subprocess
import sys
(fileIn, fileOut) = (sys.argv[1], sys.argv[2])
with open(fileIn) as csvfile, open(fileOut, 'w') as csvOut:
fieldnames = ['Chemin de base', 'Chemin', 'Commande', 'Argument']
writer = csv.DictWriter(csvOut, delimiter=';',
quoting=csv.QUOTE_ALL,
fieldnames=fieldnames)
writer.writeheader()
for record in csv.DictReader(csvfile, delimiter=';'):
if record['Type'] == 'FOLDER':
continue
filepath = '/'.join([record['Chemin de base'], record['Chemin']])
output = subprocess.check_output(['file', '-bi', filepath])
mimes = output.split(';', 1)
row = {'Chemin de base': record['Chemin de base'],
'Chemin': record['Chemin'],
'Commande': 'ADD_TAG',
'Argument': 'mime:' + mimes[0]}
writer.writerow(row)
Exemples de commandes
Les commandes de réintégration pourraient comprendre :
- ADD_FILE, REMOVE_FILE : ajout et suppression de fichier
- ADD_FOLDER, REMOVE_FOLDER : ajout et suppression de répertoire
- ADD_TAG : ajout d'un tag
- ADD_COMMENT : ajout d'un commentaire
@tledoux : Est-ce que ce comportement ne pourrait pas déjà être intégré en se basant sur l'enregistrement JSON ?
Le problème de l'utilisation de l'enregistrement JSON est que ce dernier est variable (il est directement lié à la version d'Archifiltre avec laquelle on interagit) et qu'il est donc difficile de générer ou de modifier un tel enregistrement.
L'idée de passer par des csv intermédiaires est que l'on ne dépend plus de la version et que ces csv peuvent être générer "simplement" par des programmes ou même des humains.
Bonjour, L'export METS (beta) est-il prévu pour être compatible avec la gestion de ce type de fichier par Octave ? J'ai essayé mais j'ai actuellement une erreur à l'import
Je me rallie au commentaire de @akakeronos. J'ai essayé aujourd'hui de réimporter un SIP METS Archifiltre dans Docuteam Packer. J'ai pu résoudre certains problèmes, d'autres sont restés bloquants. L'option de passer par une transformation est faisable, mais le chemin le plus court me semble difficile à ce jour. (Archifiltre 3.1.1, Packer 5.8.0).
J'ai eu des messages d'erreurs en utilisant l'eport METS (en béta) après avoir utilisé le "move mode" (lui aussi en béta). Est-ce que qqn peut reproduire et confirmer cette erreur? (Archifiltre 3.1.1, erreurs "METS export error - File .. cannot be found. It may have been moved or deleted" et "METS export error - An unexpected error occured")
Bonjour, Le sujet est-il toujours d'actualité ?
Concernant l'export METS il a été désactivé dans les dernières versions d'Archifiltre, nous nous repencherons dessus en fin d'année à priori
Bonjour, je viens d'échanger avec la personne en charge côté métier hier après-midi (congés!) qui me confirme qu'ils se sont effectivement réorienté vers un autre outil. vous avez donc eu tout à fait raison de fermer le ticket. Désolé pour le retard. m.s. j.