Bilder per API mit fortsetzbarer Queue vektorisieren
Vektorisiere Bilder stapelweise per API. Speichere Auftrags-IDs in einer dauerhaften Warteschlange, behandle Fehler und setze einen Lauf ohne erneute Uploads fertiger Aufträge fort.
Auf dieser Seite
Lege zur Stapelverarbeitung per API für jede Quelldatei einen Eintrag in einer Warteschlange an. Speichere den Fortschritt, bevor du mit der nächsten Datei beginnst. Bei PerfectVector API v1 verwaltet dein Worker den Stapel. Die API nimmt pro Anfrage ein Bild entgegen und erlaubt standardmäßig eine laufende Live-Konvertierung pro Konto. Limits der PerfectVector API
Einen Eintrag pro Bild anlegen
Beginne mit einer unveränderten Kopie jeder Vorlage und einem separaten Ausgabeordner. Die Beispiele gehen von einem Worker, einer lokalen SQLite-Datenbank und einem Ordner mit PNG-, JPEG- oder WebP-Dateien mit je einem Einzelbild aus. Prüfe die Dateigrenzen der API, bevor du Dateien einreihst. Vergib eindeutige Ausgabepfade, damit sich die Ergebnisse zweier Quellen namens logo.png nicht überschreiben.
Speichere die folgenden Felder zusammen vor dem ersten Upload.
| Feld | Was du festhältst |
|---|---|
| Quelle | Einen stabilen Pfad oder eine feste Objektversion und eine Prüfsumme der Originaldaten. |
| Anfrageschlüssel | Einen Idempotenzschlüssel, der Wiederholungen desselben Vorgangs kennzeichnet. Notiere den Zeitpunkt des ersten POST-Versuchs. |
| Konvertierungs-ID | Die vec_…-ID der API, sobald du sie erhältst. |
| Ausgabe | Ein eindeutiges lokales Ziel und den letzten bestätigten Zustand des Eintrags. |
| Fehlerdetails | Den API-Problemcode, die Anfrage-ID oder den Konvertierungsfehler, falls vorhanden. |
Schreibe den Eintrag dauerhaft in die Datenbank, bevor du den POST sendest. Falls die API den Upload annimmt, aber die Verbindung vor Erhalt der ID abbricht, kannst du den gespeicherten Schlüssel erneut verwenden. PerfectVector erkennt ihn 24 Stunden ab der ersten Anfrage im selben Konto und Modus. Sende bei der Wiederholung dieselben Bilddaten und Optionen. Idempotenz bei PerfectVector

Aufträge einzeln senden, abfragen und speichern
Sende einen Multipart-POST an /v1/vectorizations mit dem Bild im Feld image und dem Header Idempotency-Key aus dem Eintrag. Mit Prefer: respond-async bleibt die Anfrage kurz. Speichere die ID einer erfolgreichen Antwort, bevor du den Status abfragst. Eine Antwort mit 202 bedeutet, dass die Konvertierung noch läuft. Eine Antwort mit 201 kann einen Erfolg oder einen Fehlschlag beschreiben. Prüfe den Status im JSON. Wartezeiten und asynchrone Antworten bei PerfectVector
So entscheidet der Worker über den nächsten Schritt. Einen Zustand wie saved definierst du für deine eigene Warteschlange. Die API gibt Statuswerte wie processing und succeeded zurück.
| Gespeicherter Eintrag | Nächster Schritt des Workers |
|---|---|
| Neu, mit gespeichertem Schlüssel | Originaldaten hochladen und die zurückgegebene Konvertierungs-ID speichern. |
| Unklarer Upload, ID unbekannt | Innerhalb der Frist denselben Upload mit dem gespeicherten Schlüssel wiederholen. Ist die Frist abgelaufen, den Eintrag zur Prüfung markieren, bevor du eine neue, möglicherweise kostenpflichtige Konvertierung startest. |
| Konvertierungs-ID gespeichert | Status der vorhandenen ID abfragen. Etwa zwei Sekunden zwischen Abfragen warten und Wartezeiten bei Ratenlimits beachten. |
| Konvertierung erfolgreich, Datei fehlt | Ergebnis herunterladen, auf image/svg+xml prüfen, in eine temporäre Datei schreiben und diese an den Zielpfad umbenennen. Erst danach den Eintrag als gespeichert markieren. |
| Gespeichert | POST überspringen. Fehlt die Ausgabe, versuche das vorhandene Ergebnis abzurufen, solange sein Link noch funktioniert. |
| Abgelehnt oder fehlgeschlagen | Das HTTP-Problem oder den endgültigen Konvertierungsfehler protokollieren. Fehlerhafte Eingaben korrigieren, bevor du sie als neuen Auftrag einreichst. |
Wenn ein POST 429 oder 503 liefert, halte Retry-After ein und sende innerhalb der 24 Stunden dasselbe Bild mit denselben Optionen und dem ursprünglichen Schlüssel erneut. Bei too_many_in_flight warte zusätzlich auf den Abschluss der laufenden Live-Konvertierung. Wenn du eine Konvertierungs-ID hast, prüfe sie vor einem erneuten Upload. Nach einem bestätigten endgültigen Status failed mit timeout oder provider_unavailable brauchst du für einen neuen Versuch einen neuen Schlüssel. Warte bei einem nicht verfügbaren Anbieter, bis der Dienst wieder bereitsteht. Bei einer Zeitüberschreitung des Clients ist der Stand des ursprünglichen Auftrags unklar. Verwende seine ID oder wiederhole die Anfrage innerhalb der Frist mit dem ursprünglichen Schlüssel. Fehler der PerfectVector API
Nach einem Neustart kann der Worker den Status erneut abfragen oder ein Ergebnis herunterladen, ohne eine neue Konvertierung anzustoßen. Lade jedes erfolgreiche SVG herunter und speichere es, bevor du in der Warteschlange weitergehst. Das API-Ergebnis ist ab Abschluss 24 Stunden verfügbar. Ergebnisse und Downloads bei PerfectVector
Setze den Worker anhand dieses Pseudocodes mit deiner Datenbank und deinem HTTP-Client um. Für den folgenden Test soll der Worker jede Anfrage protokollieren und unmittelbar nach dem dauerhaften Speichern der zweiten Konvertierungs-ID pausieren können.
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 stateNeustart mit drei Dateien testen
Nimm zwei kleine PNG-Logos und ein beschädigtes PNG. Lass die beschädigte Datei bewusst im Test, um zu sehen, ob die Warteschlange nach der Ablehnung weiterläuft. Mit einem Testschlüssel sollten die beiden gültigen Dateien Beispiel-SVGs liefern. Der beschädigte Upload sollte bei der Validierung scheitern und nicht im Ausgabeordner landen. Der Testmodus liefert für beide gültigen Dateien dasselbe Beispiel-SVG. PerfectVector-Testmodus
- Warte, bis die erste Datei
savederreicht. Pausiere den Worker, nachdem die ID der zweiten gültigen Datei geschrieben, ihre Ausgabe aber noch nicht gespeichert wurde. - Starte den Worker neu. Prüfe, ob er die erste Datei überspringt und die zweite mit ihrer vorhandenen Konvertierungs-ID herunterlädt.
- Prüfe, ob die beschädigte Datei mit ihrem Problemcode im Fehlerbericht steht und kein SVG dafür geschrieben wurde.
- Starte den Worker ein weiteres Mal. Prüfe, ob beide Dateien weiterhin vorhanden sind und kein erfolgreicher Upload erneut gesendet wird.
Wir führten den Neustarttest mit einem API-Testschlüssel aus. Der Worker speicherte zwei Beispiel-SVGs, protokollierte eine beschädigte Eingabe als abgelehnt und setzte den zweiten erfolgreichen Auftrag anhand seiner vorhandenen ID fort. Der abschließende Durchlauf stellte keine Anfragen. Verwende eine lokale Testantwort für den ausstehenden Zustand, da Testkonvertierungen sofort fertig sind.
Häufige Fragen
Kann ich alle Dateien in einem API-Aufruf senden?
PerfectVector API v1 akzeptiert ein Bild pro POST. Sende einen Stapel als Reihe einzelner Anfragen. Halte bei Live-Aufträgen das Limit des Kontos ein und warte auf den Abschluss der aktuellen Konvertierung, bevor du die nächste einreichst. Limits der PerfectVector API
Was ist, wenn das SVG bereits abgelaufen ist?
Verwende dein gespeichertes SVG, wenn du es schon heruntergeladen hast. Prüfe andernfalls den Konvertierungsstatus und entscheide, ob ein neuer Auftrag nötig ist. Eine neue Live-Konvertierung kann bei Erfolg einen weiteren Credit kosten. Ergebnisse und Downloads bei PerfectVector
Quellen
- PerfectVector – Limits – Dateiprüfungen und standardmäßiges Parallelitätslimit pro Konto.
- PerfectVector – Idempotenz – Gültigkeitsbereich des Schlüssels, Wiederholungsfrist und übereinstimmende Eingaben.
- PerfectVector – Wartezeiten und asynchrone Antworten – Asynchrone Aufträge und Statusabfragen.
- PerfectVector – Ergebnisse – Download, Fehler und Verfall von Ergebnissen.
- PerfectVector – Testmodus – Upload-Prüfungen und Ergebnisse mit einem Testschlüssel.
- PerfectVector – Fehler – Wartezeiten aus Retry-After, endgültige Fehler und neue Schlüssel.
Erstelle über die API-Seite von PerfectVector einen Testschlüssel und teste den Ablauf mit drei eigenen Dateien. Prüfe, ob zu jedem erfolgreichen Eintrag ein SVG gespeichert wurde und ob beim Neustart kein fertiger Auftrag erneut eingereicht wird.
Mehr aus dem Blog
PNG2SVG-Stapelkonvertierung: Heruntergeladene ZIP prüfen
Führen Sie eine PNG2SVG-Konvertierung mit zwei Dateien durch, laden Sie die SVG-ZIP-Datei herunter und überprüfen Sie Dateinamen und tatsächliche Pfadinhalte, bevor Sie einem größeren Stapel Ihrer eigenen Grafik vertrauen.
Bilderordner in Claude Code als SVG-Stapel planen
Plane die Konvertierung eines Ordners mit Claude Code und PerfectVector MCP. Lege eindeutige SVG-Pfade fest und finde fehlende Dateien mit einer erprobten lokalen Prüfung.


