PerfectVector
Par Jay

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.

7 min de lecture
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

Essayez avec votre propre image
Ouvrir l’outil complet
Essai gratuit. Déposez une image pour prévisualiser votre vecteur, sans inscription.

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.

ChampCe qu'il faut conserver
SourceUn chemin stable ou une version d'objet et une empreinte des données d'origine.
Clé de requêteUne clé d'idempotence qui identifie les renvois de cette opération. Notez la date du premier POST.
Identifiant de conversionL'identifiant vec_… de l'API, enregistré dès sa réception.
SortieUne destination locale unique et le dernier état confirmé dans la file.
Détails de l'échecLe 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

Schéma du processus
Une pile d'images matricielles étiquetées mène à un enregistrement de conversion, puis à un SVG. Une flèche relie le redémarrage à l'enregistrement.
Enregistrez l'identifiant avant le téléchargement. Après une interruption, reprenez à partir de cet identifiant.

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 fileAction suivante
Nouveau, avec une clé enregistréeEnvoyez les données d'origine et enregistrez l'identifiant de conversion retourné.
Envoi incertain, identifiant inconnuRenvoyez 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 manquantTé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 échecNotez 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 state

Testez 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

  1. 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.
  2. Redémarrez le processus. Vérifiez qu'il ignore le premier fichier et télécharge le second avec l'identifiant existant.
  3. 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.
  4. 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

  1. PerfectVector — Limites — Contrôles des fichiers et simultanéité par défaut.
  2. PerfectVector — Idempotence — Portée de la clé, délai de renvoi et données identiques.
  3. PerfectVector — Attente et réponses asynchrones — Envoi asynchrone et vérification de l'état.
  4. PerfectVector — Résultats — Téléchargement, échecs et expiration.
  5. PerfectVector — Mode test — Contrôles et résultats accessibles avec une clé de test.
  6. 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

PerfectVector

Transformez votre image en
tracés vectoriels nets et modifiables

Vectorisez et vérifiez l’aperçu gratuitement, sans limite quotidienne.