Open srosset81 opened 2 years ago
J'ai fait ça mais je me suis heurté au fait que triplestore.insert
attendant des triples et non des quads (il faut utiliser le mot clé GRAPH pour les triples qui ne sont pas dans le graph par défaut)
async restoreBackup(ctx) {
const { dataset, secure, fileName } = ctx.params;
let buffer = await fsPromises.readFile(fileName);
if (path.extname(fileName) === '.gz') {
buffer = await promisify(unzip)(buffer);
}
const quads = buffer.toString();
const exist = await this.actions.datasetExist({ dataset }, { parentCtx: ctx });
if (exist) {
await ctx.call('triplestore.dropAll', { dataset, webId: 'system' });
} else {
await this.actions.createDataset({ dataset, secure }, { parentCtx: ctx });
}
await ctx.call('triplestore.insert', {
resource: quads,
contentType: MIME_TYPES.TRIPLE,
dataset,
webId: 'system'
});
}
Je pense qu'il serait mieux de passer par un POST dans l'API de Fuseki, comme le fait l'interface. L'upload de quads marche bien, il déduit lui-même les graphs à créer.
https://jena.apache.org/documentation/fuseki2/fuseki-server-protocol.html
import a backup for dev test there are 2 files to import : localData and settings refactor your nq files to replace base url with http://localhost:3000 go to http://localhost:3030 /!\ notice 3030 for backend web app then add data select files and upload careful select the second settings dataset at the top of the window before uploading the second file contact me if you want the files
don't delete datasets if you need ACL because you can't create secure dataset from jena backend
Le backup de Fuseki génère des fichiers de quads zippés (
.nq.gz
), mais il n'y a rien qui permet de les réimporter facilement, en particulier quand il y a plusieurs graphs (ce qui est le cas lorsque les WebACL sont activés).Il serait bien d'avoir une action de type
restoreBackup
qui gère ça automatiquement, et peut-être aussi unrestoreAllBackups
qui lise tous les fichiers dans un dossier.