Vectoriser des images par lot avec une file API
Vectorisez des images par lot avec une API et une file persistante. Enregistrez les identifiants, traitez les échecs et reprenez sans renvoyer les tâches terminées.
Sur cette page
Pour vectoriser des images par lot avec une API, placez chaque source dans une file et enregistrez son état avant de passer à la suivante. Avec l'API PerfectVector v1, votre processus gère le lot. L'API accepte une image par requête et autorise par défaut une conversion en production à la fois par compte. Limites de l'API PerfectVector
Créez un enregistrement par image
Partez d'une copie stable de chaque source et d'un dossier de sortie distinct. Les exemples utilisent un seul processus, une base SQLite locale et des PNG, JPEG ou WebP à une seule image. Vérifiez les limites de fichiers de l'API avant de les mettre en file. Donnez des sorties uniques aux deux fichiers logo.png pour éviter tout écrasement.
Enregistrez ensemble les champs suivants avant le premier envoi.
| Champ | Ce qu'il faut conserver |
|---|---|
| Source | Un chemin stable ou une version d'objet et une empreinte des données d'origine. |
| Clé de requête | Une clé d'idempotence qui identifie les renvois de cette opération. Notez la date du premier POST. |
| Identifiant de conversion | L'identifiant vec_… de l'API, enregistré dès sa réception. |
| Sortie | Une destination locale unique et le dernier état confirmé dans la file. |
| Détails de l'échec | Le code d'erreur API, l'identifiant de requête ou l'erreur de conversion, si disponible. |
Validez l'enregistrement en base avant le POST. Si l'API accepte l'envoi mais que la connexion s'interrompt avant de renvoyer l'identifiant, vous pourrez réutiliser la clé. PerfectVector la reconnaît pendant 24 heures à partir de la première requête pour le même compte et le même mode. Gardez les mêmes données et options lors du renvoi. Idempotence chez PerfectVector

Envoyez, vérifiez et enregistrez une tâche à la fois
Envoyez un POST multipart à /v1/vectorizations avec l'image dans le champ image et l'en-tête Idempotency-Key de l'enregistrement. Utilisez Prefer: respond-async pour limiter la durée de l'envoi. Enregistrez l'identifiant de la réponse avant de vérifier l'état. Une réponse 202 signale une conversion en attente. Une réponse 201 peut décrire une réussite ou un échec. Lisez l'état dans le JSON. Attente et réponses asynchrones chez PerfectVector
Voici l'ordre de traitement. Un état comme saved est propre à votre file. L'API renvoie des états tels que processing et succeeded.
| Enregistrement dans la file | Action suivante |
|---|---|
| Nouveau, avec une clé enregistrée | Envoyez les données d'origine et enregistrez l'identifiant de conversion retourné. |
| Envoi incertain, identifiant inconnu | Renvoyez les mêmes données avec la clé enregistrée dans le délai prévu. Une fois le délai écoulé, marquez l'entrée à vérifier avant d'engager une nouvelle conversion éventuellement payante. |
| Identifiant de conversion enregistré | Vérifiez l'identifiant existant. Attendez environ deux secondes entre les contrôles et respectez les délais des limites de débit. |
| Conversion réussie, fichier manquant | Téléchargez le résultat, vérifiez image/svg+xml, écrivez dans un fichier temporaire et renommez-le à destination. Marquez la sortie comme enregistrée après le renommage. |
| Enregistré | Ignorez le POST. Si la sortie manque, essayez de récupérer le résultat existant tant que son lien fonctionne. |
| Rejeté ou en échec | Notez le problème HTTP ou l'erreur finale. Corrigez une mauvaise entrée avant de la soumettre comme nouvelle opération. |
Si un POST renvoie 429 ou 503, respectez Retry-After et renvoyez la même image, les mêmes options et la clé d'origine dans les 24 heures. En cas de too_many_in_flight, attendez aussi la fin de la conversion en production existante. Si vous avez un identifiant, vérifiez-le avant tout renvoi. Pour réessayer après un état final confirmé failed avec timeout ou provider_unavailable, utilisez une autre clé. Si le prestataire est indisponible, attendez son rétablissement. Si le délai du client expire, l'état d'origine est incertain. Utilisez son identifiant ou renvoyez la clé d'origine pendant le délai prévu. Erreurs de l'API PerfectVector
Après redémarrage, le processus peut vérifier l'état ou télécharger de nouveau sans lancer de conversion. Téléchargez et stockez chaque SVG réussi avant de continuer. Le résultat de l'API expire 24 heures après la fin de la conversion. Résultats et téléchargements PerfectVector
Adaptez ce pseudocode à votre base et à votre client HTTP. Pour le test, le processus consigne chaque requête et peut se mettre en pause juste après avoir validé le deuxième identifiant de conversion.
for each queue row in a stable order:
if the row is rejected or its saved SVG is still on disk:
continue
if the row has no conversion ID:
verify source bytes match the stored digest
if an earlier POST is uncertain and the replay window expired:
flag the row for review and continue
POST with the stored key and original bytes and options
if the response is a permanent input rejection:
commit the error and continue
if the POST times out or the service requests a retry:
keep the same key, record the retry time and stop this run
commit the returned conversion ID
pause here when testing recovery after a commit
GET status by conversion ID, waiting between pending responses
if conversion failed:
commit its error and continue
download the existing result and check the SVG media type
write to a temporary file and rename it to the output path
commit the saved stateTestez le redémarrage avec trois fichiers
Prenez deux petits logos PNG et un PNG endommagé. Incluez le fichier endommagé pour voir si la file continue après le rejet. Avec une clé de test, les deux fichiers valides doivent renvoyer des SVG d'exemple. Le fichier endommagé doit échouer à la validation et rester hors du dossier de sortie. Le mode test renvoie le même SVG pour les deux fichiers valides. Mode test de PerfectVector
- Laissez le premier fichier atteindre
saved. Mettez le processus en pause après l'écriture de l'identifiant du deuxième fichier valide et avant l'enregistrement du SVG. - Redémarrez le processus. Vérifiez qu'il ignore le premier fichier et télécharge le second avec l'identifiant existant.
- Vérifiez que le fichier endommagé apparaît dans le rapport avec son code d'erreur et qu'aucun SVG n'a été écrit pour lui.
- Lancez le processus une dernière fois. Vérifiez que les deux fichiers sont toujours présents et qu'aucun des deux envois réussis n'est répété.
Nous avons effectué le test de redémarrage avec une clé de test. Le processus a enregistré deux SVG d'exemple, signalé un fichier endommagé et repris la deuxième conversion réussie avec son identifiant existant. Le dernier passage n'a envoyé aucune requête. Simulez un état en attente dans un test local, car les conversions de test sont immédiates.
Questions fréquentes
Puis-je envoyer tous les fichiers dans un seul appel ?
L'API PerfectVector v1 accepte une image par POST. Envoyez un lot par requêtes distinctes. En production, respectez la limite par compte et attendez la fin de la conversion en cours avant d'envoyer la suivante. Limites de l'API PerfectVector
Que faire si le SVG a déjà expiré ?
Utilisez votre copie si vous l'avez téléchargée. Sinon, consultez l'état de la conversion et décidez s'il faut en lancer une autre. Une nouvelle conversion réussie en production peut consommer un autre crédit. Résultats et téléchargements PerfectVector
Sources
- PerfectVector — Limites — Contrôles des fichiers et simultanéité par défaut.
- PerfectVector — Idempotence — Portée de la clé, délai de renvoi et données identiques.
- PerfectVector — Attente et réponses asynchrones — Envoi asynchrone et vérification de l'état.
- PerfectVector — Résultats — Téléchargement, échecs et expiration.
- PerfectVector — Mode test — Contrôles et résultats accessibles avec une clé de test.
- PerfectVector — Erreurs — Délais Retry-After, échecs définitifs et usage d'une nouvelle clé.
Obtenez une clé de test depuis la page de l'API PerfectVector et essayez avec trois de vos fichiers. Vérifiez que chaque réussite laisse un SVG sur le disque et que le redémarrage ne renvoie aucun travail terminé.
Plus depuis le blog
Conversion PNG2SVG par lots : vérifier le ZIP téléchargé
Suivez une conversion PNG2SVG de deux fichiers, téléchargez le fichier ZIP SVG et vérifiez les noms de fichiers et le contenu réel du chemin avant de faire confiance à un lot plus important de vos propres illustrations.
Convertir un dossier en SVG par lot avec Claude Code
Planifiez un lot dans Claude Code avec PerfectVector MCP. Donnez un chemin unique à chaque SVG et utilisez un contrôle local testé pour trouver les fichiers manquants.


