Bonjour,
J'ai un serveur kimsufi avec opensuse.
La création des images demandée par la nouvelle version de piwigo met mon serveur à genoux (si, par exemple, quelqu'un lance un diaporama alors que les images ne sont pas créées).
Je voudrais donc soit créer ces images d'avance, comme je faisais avec l'ancienne version, mais où les mettre? (j'utilise l'upload par ftp), soit faire une tâche de fond à basse priorité pour le serveur.
Dans les deux cas il me faut savoir où mettre ces images, et avec quel nom. Faut-il synchroniser ensuite?
merci
jdd
Hors ligne
Bonjour,
tu peux créer les taille multiple dans le gestionnaire de lot
Hors ligne
je sais, merci, mais la dernière fois que j'ai essayé ca m'a bloqué le serveur.
Ce que je voudrais c'est le faire en tâche de fond quand le serveur est inactif, avec un cronjob.
Je peux analyser le code de piwigo, mais c'est un peu hard pour moi :-(
merci
jdd
Hors ligne
Bonjour,
Il faudrait chercher sur le forum anglais, un utilisateur avait écrit un batch pour pallier au temps considérable de génération des différentes tailles de vignettes lors du passage à la 2.4, (?)
J'avais regardé à l'époque car j'avais 60h de génération sur une grosse machine pour l'ensemble de mes 40 000 photos.
Finalement, j'avais travaillé autrement en dupliquant la base, traitement sur une autre machine et rechargement, je ne suis donc pas allé très loin dans cette première solution. De mémoire c'était quand même assez compliqué !
Bonne journée
Hors ligne
Pour moi la bonne méthode c'est de passer par l'API web (ws.php) avec un script. On peut lui demander quelles sont les "dérivées manquantes". J'avais codé ça pour le passage vers Piwigo 2.4 sur Piwigo.com:
# preload the derivative cache if (not defined $opt{'no-cache'} and $row->{customer_status} ne 'suspended' and $gallery_locked ne 'true') { build_cache('medium'); build_cache('thumb'); build_cache('square'); } sub build_cache { my ($type) = @_; our ($ua, $base_url); my $response = $ua->post( $base_url.'/ws.php?format=json', { method => 'pwg.getMissingDerivatives', types => $type, max_urls => 100_000 } ); my $result = from_json($response->content)->{result}; if (ref($result) ne 'HASH' or not defined $result->{urls}) { return; } my @urls = @{ $result->{urls} }; print scalar(@urls).' '.$type.' images to build'."\n"; use Time::HiRes qw/gettimeofday tv_interval/; my $i = 0; foreach my $url (@urls) { my $t1 = [gettimeofday]; printf( '[%s] photo %s %0'.length(scalar(@urls)).'u/%u generation in progress... ', $url, # $row->{username}, $type, ++$i, scalar(@urls) ); $ua->get($url.'&ajaxload=true'); my $elapsed = tv_interval($t1); printf('%u ms', $elapsed * 1000); print "\n"; } }
(voir tools/piwigo_remote.pl pour l'initialisation de $ua le User Agent)
Hors ligne