> [Site index](https://perfectvector.com/llms.txt) — available pages and descriptions.

# Wsadowa wektoryzacja obrazów przez API z kolejką

> Wektoryzuj obrazy przez API z trwałą kolejką. Zapisuj identyfikatory, obsługuj błędy i wznawiaj pracę bez ponownego przesyłania ukończonych plików.

Source: https://perfectvector.com/pl/blog/batch-vectorize-images-api

Language: pl
Author: Jay
Published: 2026-11-10T08:00:00+09:00

Aby wektoryzować obrazy wsadowo przez API, umieść każdy plik źródłowy w kolejce i zapisz jego stan przed przejściem do kolejnego. W PerfectVector API v1 kolejką zarządza Twój proces roboczy. API przyjmuje jeden obraz na żądanie i domyślnie dopuszcza jedną aktywną konwersję produkcyjną na konto. [Limity PerfectVector API](https://perfectvector.com/docs/api/limits)

## Utwórz jeden wpis kolejki na obraz

Zachowaj stałą kopię każdego pliku źródłowego i przygotuj oddzielny folder wynikowy. Przykłady zakładają jeden proces roboczy, lokalną bazę SQLite i folder z jednoklatkowymi plikami PNG, JPEG lub WebP. Przed dodaniem plików do kolejki sprawdź [limity plików API](https://perfectvector.com/docs/api/limits). Użyj unikalnych ścieżek wynikowych, aby dwa pliki o nazwie `logo.png` nie nadpisały się nawzajem.

Przed pierwszą próbą przesłania zapisz razem poniższe pola.

| Pole                    | Co zachować                                                                                  |
| ----------------------- | -------------------------------------------------------------------------------------------- |
| Źródło                  | Stałą ścieżkę lub wersję obiektu oraz skrót oryginalnych bajtów.                             |
| Klucz żądania           | Klucz idempotencji identyfikujący ponowienia tej operacji. Zapisz czas pierwszej próby POST. |
| Identyfikator konwersji | Identyfikator API `vec_…`, zapisany od razu po odebraniu.                                    |
| Wynik                   | Unikalną lokalną ścieżkę i ostatni potwierdzony stan w kolejce.                              |
| Szczegóły błędu         | Kod problemu API, identyfikator żądania lub błąd konwersji, jeśli są dostępne.               |

Zatwierdź zapis w kolejce przed wysłaniem POST. Jeśli API przyjmie plik, ale połączenie zerwie się przed odebraniem identyfikatora, nadal masz klucz do ponowienia. PerfectVector rozpoznaje go przez 24 godziny od pierwszego żądania na tym samym koncie i w tym samym trybie. Przy powtórzeniu użyj tych samych bajtów i opcji. [Idempotencja PerfectVector](https://perfectvector.com/docs/api/idempotency)

**Schemat pracy kolejki**

![Stos obrazów rastrowych z etykietą prowadzi do zapisanego wpisu konwersji, a następnie do pliku SVG. Strzałka od ponownego uruchomienia wskazuje zapisany wpis.](https://perfectvector.com/blog/batch-vectorize-images-api/workflow.webp)

*Zapisz identyfikator konwersji przed pobraniem. Po przerwie wznów pracę na podstawie zapisanego identyfikatora.*

## Wysyłaj, sprawdzaj i zapisuj po jednym zadaniu

Wyślij żądanie POST typu multipart do `/v1/vectorizations` z obrazem w polu `image` i kluczem z kolejki w nagłówku `Idempotency-Key`. Użyj `Prefer: respond-async`, aby szybko otrzymać odpowiedź. Zapisz identyfikator z poprawnej odpowiedzi przed sprawdzaniem stanu. Odpowiedź `202` oznacza, że konwersja jeszcze trwa. Odpowiedź `201` może oznaczać konwersję udaną lub nieudaną, więc odczytaj stan z JSON. [Oczekiwanie i tryb asynchroniczny w PerfectVector](https://perfectvector.com/docs/api/waiting-and-async)

Poniżej podano działania procesu roboczego. Stan kolejki, np. `saved`, to etykieta Twojej aplikacji. API zwraca stany takie jak `processing` i `succeeded`.

| Wpis kolejki na dysku                          | Kolejne działanie procesu                                                                                                                                              |
| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Nowy, z zapisanym kluczem                      | Prześlij oryginalne bajty i zapisz odebrany identyfikator konwersji.                                                                                                   |
| Wynik przesłania nieznany, brak identyfikatora | Ponów przesłanie z zachowanym kluczem w dozwolonym czasie. Po upływie tego czasu oznacz wpis do sprawdzenia przed uruchomieniem nowej, potencjalnie płatnej konwersji. |
| Identyfikator konwersji zapisany               | Sprawdzaj stan istniejącej konwersji. Odczekaj około dwóch sekund między żądaniami i przestrzegaj limitów częstotliwości.                                              |
| Konwersja udana, brak pliku                    | Pobierz wynik, sprawdź `image/svg+xml`, zapisz plik tymczasowy i zmień jego nazwę na docelową. Następnie oznacz wpis jako zapisany.                                    |
| Wynik zapisany                                 | Pomiń POST. Jeśli brakuje wyniku, spróbuj go pobrać, dopóki link działa.                                                                                               |
| Żądanie odrzucone lub konwersja nieudana       | Zapisz problem HTTP lub końcowy błąd konwersji. Popraw wadliwy plik przed wysłaniem jako nowej operacji.                                                               |

Przy odpowiedzi `429` lub `503` uwzględnij `Retry-After` i ponów żądanie z tym samym plikiem, opcjami i kluczem w ciągu 24 godzin. Jeśli wystąpi `too_many_in_flight`, poczekaj też na zakończenie aktywnej konwersji. Jeśli masz identyfikator, sprawdź go przed ponownym przesłaniem. Po potwierdzonym końcowym stanie `failed` z powodu `timeout` lub `provider_unavailable` do nowej próby potrzebny jest nowy klucz. Jeśli usługa jest niedostępna, zaczekaj na jej powrót. Po przekroczeniu limitu czasu po stronie klienta stan pozostaje niepewny. Sprawdź identyfikator lub ponów z pierwotnym kluczem w dozwolonym czasie. [Błędy PerfectVector API](https://perfectvector.com/docs/api/errors)

Ponownie uruchomiony proces może sprawdzić stan lub pobrać wynik bez rozpoczynania nowej konwersji. Pobierz i zapisz każdy udany SVG przed przejściem dalej. Wynik wygasa po 24 godzinach od zakończenia konwersji. [Wyniki i pobieranie w PerfectVector](https://perfectvector.com/docs/api/results)

Dostosuj pseudokod do swojej bazy i klienta HTTP. Poniższa próba zakłada, że proces zapisuje wszystkie żądania i może zatrzymać się w teście zaraz po zapisaniu drugiego identyfikatora.

```text
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
```

## Sprawdź ponowne uruchomienie na trzech plikach

Użyj dwóch małych logo w PNG i jednego uszkodzonego PNG. Celowo zostaw uszkodzony plik, aby sprawdzić, czy kolejka działa dalej po odrzuceniu. Z kluczem testowym oba poprawne pliki powinny zwrócić przykładowe SVG. Uszkodzony plik nie powinien przejść walidacji ani trafić do folderu wynikowego. W trybie testowym oba poprawne pliki dają ten sam przykładowy SVG. [Tryb testowy PerfectVector](https://perfectvector.com/docs/api/test-mode)

1. Poczekaj na stan `saved` pierwszego pliku. Zatrzymaj proces po zapisaniu identyfikatora drugiego poprawnego pliku, przed zapisaniem wyniku.
2. Uruchom proces ponownie. Sprawdź, czy pomija pierwszy plik i pobiera drugi po istniejącym identyfikatorze.
3. Sprawdź, czy uszkodzony plik widnieje w raporcie z kodem problemu i czy nie zapisano dla niego SVG.
4. Uruchom proces jeszcze raz. Oba pliki powinny zostać na miejscu, bez ponownego wysyłania któregokolwiek z udanych żądań.

Przeprowadziliśmy próbę z kluczem testowym API. Proces zapisał dwa przykładowe SVG, odnotował odrzucenie uszkodzonego pliku i dokończył drugi poprawny plik po zapisanym identyfikatorze. Ostatni przebieg nie wysłał żadnego żądania. Konwersje testowe kończą się od razu, więc do sprawdzenia ścieżki oczekiwania użyj lokalnej odpowiedzi testowej.

## Najczęstsze pytania

### Czy mogę wysłać wszystkie pliki w jednym żądaniu API?

PerfectVector API v1 przyjmuje jeden obraz na żądanie POST. Prześlij partię jako osobne żądania. W trybie produkcyjnym przestrzegaj limitu aktywnych konwersji na koncie i czekaj na zakończenie bieżącej przed wysłaniem kolejnej. [Limity PerfectVector API](https://perfectvector.com/docs/api/limits)

### Co zrobić, jeśli link do SVG już wygasł?

Użyj pliku SVG zapisanego wcześniej. Jeśli go nie masz, sprawdź stan konwersji i zdecyduj, czy rozpocząć nową operację. Udana konwersja produkcyjna może kosztować kolejny kredyt. [Wyniki i pobieranie w PerfectVector](https://perfectvector.com/docs/api/results)

## Źródła

1. [PerfectVector — limity](https://perfectvector.com/docs/api/limits) — sprawdzanie plików i domyślna liczba równoczesnych konwersji.
2. [PerfectVector — idempotencja](https://perfectvector.com/docs/api/idempotency) — zakres klucza, czas ponowienia i zgodność danych wejściowych.
3. [PerfectVector — oczekiwanie i tryb asynchroniczny](https://perfectvector.com/docs/api/waiting-and-async) — wysyłanie zadań i sprawdzanie ich stanu.
4. [PerfectVector — wyniki](https://perfectvector.com/docs/api/results) — pobieranie, błędy i wygaśnięcie wyników.
5. [PerfectVector — tryb testowy](https://perfectvector.com/docs/api/test-mode) — walidacja i wyniki dostępne z kluczem testowym.
6. [PerfectVector — błędy](https://perfectvector.com/docs/api/errors) — opóźnienia Retry-After, błędy końcowe i zastosowanie nowego klucza.

***

[Pobierz klucz testowy na stronie PerfectVector API](https://perfectvector.com/pl/api) i przeprowadź próbę na trzech własnych plikach. Sprawdź, czy każdy udany wpis ma SVG na dysku i czy po wznowieniu gotowe pliki nie są wysyłane ponownie.

## Explore

- [Read the HTML article](https://perfectvector.com/pl/blog/batch-vectorize-images-api)
- [Konwersja wsadowa PNG2SVG: sprawdź pobrane archiwum ZIP](https://perfectvector.com/pl/blog/png2svg-batch-convert.md)
- [Konwersja folderu obrazów do SVG w Claude Code](https://perfectvector.com/pl/blog/batch-vectorize-images-claude-code-mcp.md)
- [Product facts](https://perfectvector.com/product-facts.md)
- [FAQ](https://perfectvector.com/faq.md)
- [Pricing and credits](https://perfectvector.com/pricing.md)
