Vektorisasi Massal lewat API dengan Antrean Persisten
Vektorisasi gambar secara massal dengan antrean yang tersimpan. Catat ID, tangani berkas gagal, dan lanjutkan pekerjaan tanpa mengulang konversi yang selesai.
Di halaman ini
Untuk melakukan vektorisasi gambar secara massal lewat API, masukkan setiap sumber ke antrean dan simpan statusnya sebelum pindah ke berkas berikutnya. Di PerfectVector API v1, proses pekerja Anda yang mengelola antrean. API menerima satu gambar per permintaan dan, secara bawaan, mengizinkan satu konversi live sekaligus per akun. Batas API PerfectVector
Buat satu catatan antrean untuk setiap gambar
Mulai dengan salinan sumber yang tidak berubah dan folder keluaran terpisah. Contoh ini memakai satu proses pekerja, basis data SQLite lokal, dan folder berisi PNG, JPEG, atau WebP satu bingkai. Periksa batas berkas API sebelum memasukkan berkas ke antrean. Gunakan jalur keluaran yang unik agar dua sumber bernama logo.png tidak saling menimpa.
Simpan kolom berikut bersama-sama sebelum percobaan unggah pertama.
| Kolom | Yang disimpan |
|---|---|
| Sumber | Jalur tetap atau versi objek, beserta hash byte asli. |
| Kunci permintaan | Kunci idempotensi untuk mengenali pengiriman ulang operasi yang sama. Catat waktu percobaan POST pertama. |
| ID konversi | ID vec_… dari API, disimpan begitu diterima. |
| Keluaran | Tujuan lokal yang unik dan status antrean terakhir yang terkonfirmasi. |
| Rincian kegagalan | Kode masalah API, ID permintaan, atau kesalahan konversi, jika ada. |
Simpan perubahan pada catatan antrean sebelum mengirim POST. Jika API menerima unggahan tetapi koneksi putus sebelum ID diterima, Anda masih punya kunci untuk mengirim ulang. PerfectVector mengenali kunci tersebut selama 24 jam sejak permintaan pertama pada akun dan mode yang sama. Pertahankan byte gambar dan opsi saat mengulang. Idempotensi PerfectVector

Kirim, cek status, dan simpan satu pekerjaan pada satu waktu
Kirim POST multipart ke /v1/vectorizations dengan gambar pada kolom image dan Idempotency-Key dari catatan di header. Gunakan Prefer: respond-async agar pengiriman cepat mendapat respons. Simpan ID dari respons yang berhasil sebelum mengecek status. Respons 202 berarti konversi belum selesai. Respons 201 bisa berisi konversi berhasil atau gagal, jadi baca status di JSON. Waktu tunggu dan proses asinkron PerfectVector
Berikut urutan keputusan proses pekerja. Status antrean seperti saved adalah label Anda sendiri. API mengembalikan status seperti processing dan succeeded.
| Catatan antrean di penyimpanan | Langkah berikutnya |
|---|---|
| Baru, kunci sudah tersimpan | Unggah byte asli dan catat ID konversi yang diterima. |
| Pengiriman belum pasti, ID belum diketahui | Kirim ulang unggahan yang sama memakai kunci tersimpan dalam jangka pengulangan. Jika jangka itu lewat, tandai catatan untuk diperiksa sebelum memulai konversi baru yang mungkin dikenai biaya. |
| ID konversi tersimpan | Cek status dengan ID yang ada. Tunggu sekitar dua detik antarpemeriksaan dan patuhi jeda dari batas permintaan. |
| Konversi berhasil, berkas belum ada | Unduh hasil, periksa image/svg+xml, tulis ke berkas sementara, lalu ubah namanya ke jalur akhir. Tandai catatan sebagai tersimpan setelah penggantian nama. |
| Tersimpan | Lewati POST. Jika keluaran hilang, coba ambil hasil yang ada selama tautannya masih berfungsi. |
| Ditolak atau gagal | Catat masalah HTTP atau kesalahan akhir konversi. Perbaiki masukan yang salah sebelum mencoba sebagai operasi baru. |
Jika POST mendapat 429 atau 503, patuhi Retry-After dan coba lagi dengan gambar, opsi, dan kunci asli yang sama dalam 24 jam. Jika masalahnya too_many_in_flight, tunggu juga hingga konversi live yang aktif selesai. Jika sudah memiliki ID, cek ID itu sebelum mengirim ulang. Jika konversi berstatus akhir failed dengan timeout atau provider_unavailable, gunakan kunci baru bila ingin mencoba lagi. Untuk kasus kedua, tunggu layanan pulih. Jika waktu tunggu klien habis, hasil permintaan belum tentu diketahui. Gunakan ID atau ulangi dengan kunci asli dalam jangka yang berlaku. Kesalahan API PerfectVector
Saat dimulai ulang, proses pekerja bisa mengulang pengecekan atau unduhan tanpa memulai konversi baru. Unduh dan simpan setiap SVG yang berhasil sebelum pindah ke catatan berikutnya. Hasil API kedaluwarsa 24 jam setelah konversi selesai. Hasil dan unduhan PerfectVector
Gunakan pseudokode ini sebagai dasar implementasi dengan basis data dan klien HTTP Anda. Uji berikut mengasumsikan bahwa proses mencatat setiap permintaan dan bisa dijeda khusus untuk pengujian, tepat setelah menyimpan ID konversi kedua.
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 stateUji mulai ulang dengan tiga berkas
Gunakan dua logo PNG kecil dan satu PNG rusak. Sengaja sertakan berkas rusak agar terlihat apakah antrean tetap berjalan setelah penolakan. Dengan kunci uji, dua berkas valid seharusnya mengembalikan SVG contoh. Berkas rusak seharusnya ditolak dan tidak menghasilkan apa pun di folder keluaran. Mode uji mengembalikan SVG contoh yang sama untuk kedua berkas valid. Mode uji PerfectVector
- Biarkan berkas pertama mencapai status
saved. Jeda proses setelah ID berkas valid kedua tersimpan tetapi sebelum SVG-nya disimpan. - Mulai ulang proses. Pastikan berkas pertama dilewati dan hasil kedua diunduh dengan ID yang sudah ada.
- Pastikan berkas rusak tercantum dalam laporan dengan kode masalah dan tidak memiliki keluaran SVG.
- Jalankan sekali lagi. Pastikan kedua hasil tetap ada dan tidak ada unggahan yang berhasil dikirim ulang.
Kami menguji mulai ulang dengan kunci uji API. Proses menyimpan dua SVG contoh, mencatat penolakan satu masukan rusak, dan melanjutkan berkas kedua dengan ID yang sudah ada. Proses terakhir tidak mengirim permintaan. Gunakan respons uji buatan untuk menguji status tertunda karena konversi uji langsung selesai.
Pertanyaan umum
Bisakah semua berkas dikirim dalam satu panggilan API?
PerfectVector API v1 menerima satu gambar per POST. Kirim setiap berkas dalam permintaan terpisah. Untuk mode live, patuhi batas jumlah konversi aktif dan tunggu konversi saat ini selesai sebelum mengirim berikutnya. Batas API PerfectVector
Bagaimana jika tautan SVG sudah kedaluwarsa?
Gunakan SVG yang sudah disimpan jika sempat mengunduhnya. Jika belum, cek status dan putuskan apakah perlu memulai operasi baru. Konversi live baru bisa memakai satu kredit lagi jika berhasil. Hasil dan unduhan PerfectVector
Sumber
- PerfectVector — Batas — Pemeriksaan berkas dan batas bawaan konversi bersamaan.
- PerfectVector — Idempotensi — Cakupan kunci, jangka pengulangan, dan masukan yang harus sama.
- PerfectVector — Waktu tunggu dan proses asinkron — Pengiriman asinkron dan pengecekan status.
- PerfectVector — Hasil — Unduhan, kegagalan, dan kedaluwarsa hasil.
- PerfectVector — Mode uji — Pemeriksaan unggahan dan keluaran yang bisa diuji.
- PerfectVector — Kesalahan — Jeda Retry-After, kegagalan akhir, dan kapan memakai kunci baru.
Ambil kunci uji melalui halaman API PerfectVector dan jalankan uji dengan tiga berkas Anda. Pastikan setiap catatan yang berhasil punya SVG di penyimpanan dan bahwa memulai ulang tidak mengirim kembali pekerjaan yang sudah selesai.
Lebih banyak dari blog
Konversi Batch PNG2SVG: Periksa ZIP Hasil Unduhan
Ikuti konversi dua file PNG2SVG, unduh SVG ZIP, dan verifikasi nama file dan konten jalur sebenarnya sebelum memercayai kumpulan karya seni Anda sendiri dalam jumlah yang lebih besar.
Rencanakan Konversi Satu Folder ke SVG di Claude Code
Rencanakan konversi satu folder ke SVG di Claude Code dengan PerfectVector MCP. Tentukan jalur keluaran yang unik dan cari SVG yang hilang dengan skrip lokal.


