04-15-2015 10:50 PM
J'ai essayer de faire la conversion de 2 images différentes. J'ai pris une première image. Pour faire la seconde, je suis partis de la première, fais une rotation à 180 degrés, et écris un texte au milieu de l'image. Je me suis dis, voila j'ai bien deux images différentes.
et pourtant :
Et malheureusement la fonction se base sur les 10 premiers caractères pour générer le PATH du fichier de cache :
/>
image 1 : .. nxserver/data/convertcache/cG/lj/dH/Vy/ZT
/>
image 2 : .. nxserver/data/convertcache/cG/lj/dH/Vy/ZT
Du coups le cache de ma deuxième image a écrasé le cache de la première. J'ai dû monter la valeur de la variable "subPathPartSize" à 4 pour obtenir des PATH différents et ainsi obtenir les bons fichiers depuis le cache.
Suggestion : augmenter la valeur par défaut de "subPathPartSize" ou ajouter une autre clé pour être sûr d'avoir un Hash différent pour construire le PATH ?
04-16-2015 08:09 AM
Quelle version de Nuxeo utilisez-vous ?
Je ne peux pas reproduire ce problème, en effet même si le préfixe de path utilisé est le même (ce qui n'est certes pas optimal mais pas grave), le nom de fichier final utilisé dans le dernier répertoire est différent, c'est le has MD5 du fichier donc il n'y a pas de collision. Sur une conversion récente d'une image en trois versions réduites par exemple j'ai:
04-16-2015 12:56 PM
Bonjour, et merci pour votre réponse.
/>
Je travaille sur la version 7.2
/>
Effectivement il ya à la fin du PATH le MD5.
Sauf que pour le cas où il ya plusieurs Blob dans le BlobHolder, seul le MD5 du premier Blob de la série est pris en compte.
/>
A priori pour pourvoir regrouper tous les Blobs dans un même répertoire :
public String persist(String basePath) throws IOException {
if (blobs == null || blobs.isEmpty()) {
return null;
}
Path path = new Path(basePath);
>>> path = path.append(getHash()); <<<<
if (blobs.size() == 1) {
File file = new File(path.toString());
getBlob().transferTo(file);
return file.getAbsolutePath();
} else {
File dir = new File(path.toString());
dir.mkdir();
for (Blob blob : blobs) {
dir = new File(path.toString());
dir.mkdir();
File file = new File(path.append(blob.getFilename()).toString());
blob.transferTo(file);
}
return dir.getAbsolutePath();
}
}
résultat dans le répertoire de cache :
/>
./cG
/>
./cG/lj
/>
./cG/lj/dH
/>
./cG/lj/dH/Vy
/>
./cG/lj/dH/Vy/ZT
/>
./cG/lj/dH/Vy/ZT/137a73f51e1744ff4f84032855e2c6c6
/>
./cG/lj/dH/Vy/ZT/137a73f51e1744ff4f84032855e2c6c6/11-0_2.jpeg
/>
./cG/lj/dH/Vy/ZT/137a73f51e1744ff4f84032855e2c6c6/10-0_2.jpeg
/>
./cG/lj/dH/Vy/ZT/137a73f51e1744ff4f84032855e2c6c6/12-6_10.jpeg
/>
./cG/lj/dH/Vy/ZT/137a73f51e1744ff4f84032855e2c6c6/12-0_5.jpeg
/>
./cG/lj/dH/Vy/ZT/137a73f51e1744ff4f84032855e2c6c6/12-1_2.jpeg
/>
./cG/lj/dH/Vy/ZT/137a73f51e1744ff4f84032855e2c6c6/11-3_5.jpeg
/>
./cG/lj/dH/Vy/ZT/137a73f51e1744ff4f84032855e2c6c6/8-0_0.jpeg
Il se trouve que dans mon cas de conversion :
Du coup je me retouve dans mes 2 conversions avec la même base de PATH suivi du même MD5 (celui du premier fichier), suivi des mêmes noms de fichiers (mais leur contenu change !)
/>
Pour préciser il s'agit d'une conversion d'image au format DZI.
Quelques suggestions si cela peut aider :
A bientôt 🙂
05-11-2015 09:30 AM
Merci pour les détails exacts sur la manière dont vous reproduisez le problème. Nous allons revoir ce système de cache ([NXP-17097](https
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.