Documentation · Dépannage
Erreurs d'importation d'images
Ce document couvre les échecs qui peuvent survenir lorsque l'extension télécharge et associe des images de véhicules à partir de l'API AutoScout24. Il décrit les causes probables et les étapes pour diagnostiquer et résoudre les problèmes d'importation de médias.
Quand utiliser ce document
Lisez ce document lorsque :
- Des publications de véhicules sont importées mais n'ont pas d'images ou seulement un ensemble partiel d'images.
- Le journal de l'extension contient des lignes mentionnant
Image download failedoumedia_handle_sideload failed. - L'image mise en avant est manquante dans les publications de véhicules importées.
- La conversion WebP est activée mais les images sont enregistrées dans leur format d'origine.
- Le worker de la file d'attente des images a fonctionné mais des images manquent toujours.
Aperçu
Lorsque l'extension importe un véhicule, elle télécharge les images à partir des URL fournies par l'API AutoScout24 et les associe à la publication WordPress. Le processus utilise les fonctions intégrées download_url() et media_handle_sideload() de WordPress, qui placent les images dans le répertoire d'importation standard WordPress, génèrent des miniatures et enregistrent la pièce jointe dans la médiathèque.
Déduplication
Avant de télécharger une image, l'extension vérifie si elle a déjà été importée en recherchant une pièce jointe avec une valeur de méta-donnée de publication _as24ci_source_url correspondante. Si une correspondance est trouvée, l'ID de la pièce jointe existante est réutilisé et aucun téléchargement n'a lieu. Cela évite que la même image soit stockée plusieurs fois.
Image mise en avant
La première image de l'ensemble est automatiquement définie comme image mise en avant (miniature de publication) si aucune image mise en avant n'est déjà attribuée à la publication. Les images suivantes sont enregistrées dans le tableau de méta-données de publication _as24ci_image_ids.
Mode file d'attente des images
Lorsque le mode file d'attente des images est activé (le comportement par défaut pour les exécutions d'importation cron et REST), seule la première image par véhicule est téléchargée immédiatement pendant l'exécution de l'importation. Les URL des images restantes sont placées dans une file d'attente persistante. Un worker WP-Cron distinct (as24ci_image_queue_process) traite cette file d'attente de manière asynchrone par lots de 30 images par exécution. Cela réduit le temps et la mémoire requis par exécution d'importation.
Voir Erreurs de Cron pour obtenir des conseils sur le diagnostic des échecs du worker de la file d'attente des images.
Conversion WebP
Si la conversion WebP est activée, chaque image téléchargée est convertie au format .webp avant d'être transmise à la médiathèque WordPress. L'extension tente d'abord la conversion en utilisant PHP GD (imagewebp), puis se rabat sur Imagick. Si aucune extension n'est disponible, ou si la conversion échoue, le format d'image d'origine est utilisé et un avertissement est écrit dans le journal.
Prérequis
- La connexion API fonctionne et les images sont présentes sur l'annonce AutoScout24. Vérifiez cela sur la page État du système.
- Le répertoire d'importation WordPress est accessible en écriture par le processus du serveur web.
- L'option Importer les images est activée dans les réglages de l'extension.
- La limite de mémoire PHP et le temps d'exécution sont suffisants pour le téléchargement et le traitement des images.
Étapes de diagnostic
Étape 1 : Confirmer que l'importation d'images est activée
- Allez dans l'onglet Réglages de l'extension (ou Importations et limites selon la mise en page).
- Confirmez que l'option Importer les images est activée.
- Notez la valeur du paramètre Nombre max d'images par véhicule. S'il est défini sur un nombre bas (par exemple
1), seul ce nombre d'images sera téléchargé par véhicule. Définissez-le sur0pour un nombre illimité.
Étape 2 : Lire le fichier journal
Ouvrez le fichier journal de l'extension à l'adresse :
wp-content/uploads/as24ci-logs/adp-car-market-hub.log
Recherchez les motifs suivants :
| Motif de journal | Signification |
|---|---|
Image download failed for listing_id=… url=… error=… | download_url() a renvoyé une erreur. Le message d'erreur inclut la cause (par ex. expiration du délai HTTP, connexion refusée, 404). |
media_handle_sideload failed for listing_id=… url=… error=… | WordPress n'a pas pu enregistrer le fichier téléchargé en tant que pièce jointe média. Souvent un problème d'autorisation du système de fichiers ou d'espace disque. |
WebP conversion skipped: neither GD imagewebp nor Imagick available. | La conversion WebP est activée mais l'extension PHP requise n'est pas présente. |
WebP GD conversion failed for …, trying Imagick. | GD a échoué ; Imagick sera tenté en guise de solution de repli. |
WebP Imagick conversion failed: … | Les deux méthodes de conversion ont échoué. Le format d'image d'origine a été enregistré. |
WebP conversion failed for …, using original. | Solution de repli finale : image d'origine enregistrée. |
Image queue worker: processed=… errors=… remaining=… | Résumé de la dernière exécution du worker de la file d'attente des images. |
Image queue worker error post_id=… url=… error=… | Une image individuelle a échoué à l'intérieur du worker de la file d'attente. |
Étape 3 : Vérifier le répertoire d'importation
Le répertoire d'importation WordPress doit être accessible en écriture par le serveur web. Emplacement typique :
wp-content/uploads/
Vérifiez via FTP, SFTP ou le gestionnaire de fichiers de l'hébergement que :
- Le répertoire existe.
- Le processus du serveur web a l'autorisation d'écrire (généralement
755pour les répertoires, avec l'utilisateur du serveur web comme propriétaire). - Un espace disque suffisant est disponible.
Si le répertoire d'importation n'est pas accessible en écriture, media_handle_sideload échouera avec une erreur de système de fichiers.
Étape 4 : Vérifier la mémoire PHP et les limites d'exécution
Le téléchargement et le traitement de plusieurs images dans une seule requête nécessitent une mémoire PHP adéquate. Si la limite de mémoire PHP est trop basse, le traitement des images peut échouer silencieusement ou générer une erreur fatale.
- Allez dans Outils → Santé du site → Informations → Serveur pour vérifier la limite de mémoire PHP actuelle et le temps d'exécution maximal.
- Si la limite de mémoire est inférieure à 256 Mo pour les sites contenant de gros fichiers d'images, envisagez de l'augmenter via
wp-config.php(define('WP_MEMORY_LIMIT', '256M')) ou le panneau de contrôle de l'hébergement. - Pour les exécutions cron, l'extension tente de définir une limite de temps d'exécution de 300 secondes. Si l'environnement d'hébergement restreint
set_time_limit, cela peut ne pas s'appliquer. Utilisez le mode file d'attente des images (activé par défaut) pour répartir les téléchargements d'images sur plusieurs exécutions plus courtes.
Étape 5 : Tester l'accessibilité des URL d'images
Si le journal affiche Image download failed avec une erreur réseau ou HTTP, vérifiez que les URL d'images renvoyées par l'API sont publiquement accessibles depuis votre serveur :
- Copiez une URL d'image à partir de l'entrée du journal.
- Essayez d'y accéder dans un navigateur. Si elle renvoie une erreur 404 ou d'authentification, l'image a peut-être été supprimée de l'API ou peut nécessiter une authentification que l'extension ne fournit pas.
- Si l'URL est accessible dans un navigateur mais pas depuis le serveur, il peut y avoir une liste d'autorisation d'adresses IP, un pare-feu ou une restriction de proxy sur les requêtes HTTP sortantes de votre serveur.
Étape 6 : Vérifier l'état de la file d'attente des images
- Allez dans l'onglet Système et aide de l'extension.
- Recherchez la section de la file d'attente des images affichant : éléments restants, heure de la dernière exécution, nombres d'éléments traités et échoués.
- S'il reste des éléments et que le worker de la file d'attente n'a pas fonctionné récemment, vérifiez que WP-Cron est actif et que le crochet
as24ci_image_queue_processest planifié. Voir Erreurs de Cron pour plus de détails. - Si le verrou de la file d'attente des images (
as24ci_image_queue_running) est obsolète, supprimez-le via WP-CLI ou une extension de gestion des transients : ``wp transient delete as24ci_image_queue_running``
Étape 7 : Vérifier les prérequis de la conversion WebP
Si la conversion WebP est activée mais que les images sont enregistrées au format JPEG ou PNG :
- Allez dans Outils → Santé du site → Informations → Serveur et recherchez la bibliothèque GD et Imagick.
- GD nécessite la fonction
imagewebp, qui est disponible dans GD compilé avec le support WebP (PHP 5.5+). Confirmez cela avec votre hébergeur. - Imagick nécessite l'extension PHP
imagickavec le support WebP compilé. Confirmez cela avec votre hébergeur. - Si aucun des deux n'est disponible, désactivez la conversion WebP dans les réglages de l'extension ou contactez votre hébergeur pour activer l'extension requise.
Référence de configuration
| Réglage | Effet |
|---|---|
| Importer les images | Interrupteur principal. Lorsqu'il est désactivé, aucune image n'est téléchargée pendant l'importation. Par défaut : activé. |
| Nombre max d'images par véhicule | Nombre maximal d'images téléchargées par véhicule. 0 = illimité. |
| Mode file d'attente des images | Lorsqu'il est activé, seule la première image est téléchargée immédiatement ; les images restantes sont mises en file d'attente. Par défaut : activé pour les exécutions cron/REST. |
| Convertir en WebP | Lorsqu'il est activé, les images téléchargées sont converties au format .webp. Nécessite GD avec support WebP ou Imagick. Par défaut : désactivé. |
| Qualité WebP | Qualité de compression pour la conversion WebP (1–100). Par défaut : 80. |
Notes opérationnelles
- Les images sont téléchargées avec un délai d'expiration de 30 secondes par URL. Des serveurs d'images externes lents ou peu fiables peuvent entraîner l'échec d'images individuelles sans affecter le reste de l'importation.
- Chaque image téléchargée est enregistrée dans la médiathèque WordPress en tant que pièce jointe avec
post_parentdéfini sur l'ID de publication du véhicule. - La valeur de méta-donnée de pièce jointe
_as24ci_source_urlest utilisée pour la déduplication. Si cette méta-donnée est supprimée ou corrompue, l'extension peut télécharger à nouveau la même image lors de l'importation suivante. - La file d'attente des images peut contenir jusqu'à 20 000 éléments. Si cette limite est dépassée, un avertissement est consigné dans le journal et une passe de déduplication est exécutée. Voir Erreurs de Cron.
- Lorsque tous les éléments de la file d'attente pour un véhicule ont été traités, la méta-donnée
_as24ci_image_idsest reconstruite à partir des pièces jointes enfants réelles et le hachage des images est finalisé. Jusque-là, la valeur de hachage est définie surpending_queuepour signaler que l'ensemble d'images n'est pas encore complet. - La suppression définitive d'une publication de véhicule (via la fonction de suppression de l'extension ou depuis la liste des véhicules WordPress) supprime également définitivement toutes les images associées importées par l'extension.
Dépannage
| Symptôme | Cause probable | Vérification |
|---|---|---|
| Aucune image sur aucun véhicule | L'importation d'images est désactivée | Activer dans les réglages de l'extension |
| Une seule image par véhicule | Le nombre max d'images est défini sur 1, ou la file d'attente des images n'a pas fonctionné | Vérifier le réglage du nombre max d'images ; vérifier que le worker de la file d'attente fonctionne |
Image download failed … HTTP 404 | L'URL de l'image n'est plus valide | Vérifier que l'annonce a toujours des images dans AutoScout24 ; réimporter |
Image download failed … connect timed out | Le serveur ne peut pas joindre l'hôte d'images externe | Vérifier l'accès réseau sortant ; essayer depuis le serveur avec curl |
media_handle_sideload failed … Could not write file | Répertoire d'importation non accessible en écriture ou disque plein | Vérifier les autorisations du répertoire et l'espace disque disponible |
| Conversion WebP ignorée silencieusement | GD/Imagick non disponible ou non compilé avec le support WebP | Vérifier Santé du site → Serveur ; désactiver la conversion WebP si elle n'est pas prise en charge |
| Images présentes dans la médiathèque mais pas sur la page du véhicule | La méta-donnée _as24ci_image_ids est peut-être manquante ou incorrecte | Réimporter le véhicule ; vérifier la méta-donnée de publication dans la base de données |
| Image mise en avant manquante | La première image de la file d'attente n'a peut-être pas encore été traitée | Vérifier l'état de la file d'attente des images ; vérifier que le worker de la file d'attente s'exécute |
| Images en double dans la médiathèque | Méta-donnée _as24ci_source_url manquante dans les pièces jointes | Ne pas supprimer cette méta-donnée ; contacter le support si vous êtes concerné |