PerfectVector
लेखक: Jay

API से बैच इमेज वेक्टराइज़ेशन और बीच से दोबारा शुरू करना

स्थायी क्यू से API के ज़रिए इमेज का बैच वेक्टराइज़ करें। कन्वर्ज़न ID सेव करें, नाकाम फ़ाइलें संभालें और पूरा काम दोबारा भेजे बिना वहीं से शुरू करें।

8 मिनट का पठन
इस पेज पर

API से कई इमेज एक बैच में वेक्टराइज़ करने के लिए हर मूल फ़ाइल क्यू में डालें और अगली फ़ाइल पर जाने से पहले उसकी प्रगति सेव करें। PerfectVector API v1 में आपका वर्कर बैच संभालता है। API हर अनुरोध में एक इमेज स्वीकार करती है और डिफ़ॉल्ट तौर पर हर अकाउंट में एक समय पर एक लाइव कन्वर्ज़न चलाती है। PerfectVector API की सीमाएँ

अपनी इमेज पर आज़माएँ
पूरा टूल खोलें
यह मुफ़्त है। इमेज डालें और बिना साइन-अप किए अपने वेक्टर का प्रीव्यू देखें।

हर इमेज के लिए एक क्यू रिकॉर्ड बनाएँ

हर मूल इमेज की स्थिर कॉपी और अलग आउटपुट फ़ोल्डर से शुरू करें। नीचे के उदाहरणों में एक वर्कर, लोकल SQLite डेटाबेस और एक फ़्रेम वाली PNG, JPEG या WebP फ़ाइलों का फ़ोल्डर है। फ़ाइलें क्यू में डालने से पहले API की फ़ाइल सीमाएँ देखें। अलग आउटपुट पाथ रखें ताकि logo.png नाम की दो अलग फ़ाइलें एक-दूसरे के आउटपुट पर न लिखें।

पहली बार अपलोड की कोशिश करने से पहले ये फ़ील्ड एक साथ सेव करें।

फ़ील्डक्या रखें
स्रोतस्थिर पाथ या ऑब्जेक्ट का वर्ज़न, और मूल बाइट का डाइजेस्ट।
अनुरोध कीआइडेम्पोटेंसी की, जो उसी ऑपरेशन के दोबारा भेजे जाने की पहचान करती है। पहली POST कोशिश का समय दर्ज करें।
कन्वर्ज़न IDAPI की vec_… ID। मिलते ही सेव करें।
आउटपुटअलग लोकल पाथ और क्यू की पिछली पुष्ट स्थिति।
नाकामी की जानकारीAPI समस्या कोड, अनुरोध ID या कन्वर्ज़न की त्रुटि, जो उपलब्ध हो।

POST भेजने से पहले क्यू रिकॉर्ड डेटाबेस में कमिट करें। अगर API अपलोड स्वीकार कर ले लेकिन ID मिलने से पहले कनेक्शन टूट जाए, तो आपके पास दोबारा इस्तेमाल करने के लिए की रहेगी। PerfectVector उसी अकाउंट और मोड में पहले अनुरोध के बाद 24 घंटे तक वह की पहचानता है। दोबारा भेजते समय इमेज के बाइट और विकल्प जस के तस रखें। PerfectVector में आइडेम्पोटेंसी

वर्कफ़्लो का चित्र
टैग लगे रास्टर चित्रों का समूह सेव किए गए कन्वर्ज़न रिकॉर्ड से जुड़ता है और फिर SVG तक पहुँचता है। दोबारा शुरू करने का तीर उसी रिकॉर्ड की ओर जाता है।
डाउनलोड से पहले कन्वर्ज़न ID सेव करें। काम रुक जाए तो उसी ID से आगे बढ़ें।

एक बार में एक काम भेजें, स्टेटस जाँचें और सेव करें

/v1/vectorizations पर मल्टीपार्ट POST भेजें। इमेज image फ़ील्ड में और उस रिकॉर्ड की की Idempotency-Key हेडर में रखें। अनुरोध जल्दी लौटाने के लिए Prefer: respond-async इस्तेमाल करें। सफल रिस्पॉन्स की ID सेव करके स्टेटस जाँचना शुरू करें। 202 का मतलब है कि कन्वर्ज़न अभी पूरा नहीं हुआ। 201 सफल या नाकाम कन्वर्ज़न दोनों के लिए आ सकता है, इसलिए JSON में स्टेटस पढ़ें। PerfectVector में इंतज़ार और असिंक्रोनस प्रोसेसिंग

नीचे वर्कर के फ़ैसलों का क्रम है। saved जैसे क्यू स्टेटस आपके अपने लेबल हैं। API processing और succeeded जैसे स्टेटस लौटाती है।

डिस्क पर क्यू रिकॉर्डवर्कर का अगला कदम
नया रिकॉर्ड, की सेव हैमूल बाइट अपलोड करें और लौटी कन्वर्ज़न ID दर्ज करें।
अनुरोध स्वीकार हुआ या नहीं, पता नहीं और ID नहीं हैदोबारा भेजने की अवधि में सेव की हुई की से वही अपलोड दोहराएँ। अवधि बीत गई हो तो नया, संभावित रूप से शुल्क वाला कन्वर्ज़न शुरू करने से पहले रिकॉर्ड को समीक्षा के लिए चिह्नित करें।
कन्वर्ज़न ID सेव हैमौजूदा ID का स्टेटस जाँचें। हर जाँच के बीच करीब दो सेकंड रुकें और रेट लिमिट से मिली प्रतीक्षा अवधि मानें।
कन्वर्ज़न सफल, फ़ाइल ग़ायबनतीजा डाउनलोड करें, image/svg+xml की पुष्टि करें, अस्थायी फ़ाइल में लिखें और फिर उसका नाम बदलकर सही पाथ पर रखें। उसके बाद रिकॉर्ड को सेव हुआ चिह्नित करें।
सेव हो गयाPOST छोड़ दें। आउटपुट ग़ायब हो गया हो तो लिंक काम करते समय मौजूदा नतीजा लेने की कोशिश करें।
अस्वीकृत या नाकामHTTP समस्या या कन्वर्ज़न की अंतिम त्रुटि दर्ज करें। ग़लत इनपुट सुधारकर नया ऑपरेशन चलाएँ।

POST में 429 या 503 आए तो Retry-After मानें और मूल की की 24 घंटे की अवधि के भीतर उसी इमेज और विकल्प से रीट्राई करें। too_many_in_flight आए तो पहले चल रहे लाइव कन्वर्ज़न के पूरा होने का इंतज़ार भी करें। कन्वर्ज़न ID हो तो दोबारा भेजने से पहले उसे जाँचें। timeout या provider_unavailable के साथ अंतिम स्टेटस failed पक्का हो तो रीट्राई के लिए नई की चाहिए। सेवा उपलब्ध न हो तो उसके लौटने का इंतज़ार करें। क्लाइंट टाइमआउट में मूल कन्वर्ज़न की स्थिति पक्की नहीं होती। उसकी ID इस्तेमाल करें या समय रहते मूल की से दोबारा भेजें। PerfectVector API त्रुटियाँ

दोबारा शुरू हुआ वर्कर नया कन्वर्ज़न बनाए बिना स्टेटस फिर जाँच सकता है या नतीजा फिर डाउनलोड कर सकता है। क्यू के अगले रिकॉर्ड पर जाने से पहले हर सफल SVG डाउनलोड करके रखें। API का नतीजा कन्वर्ज़न पूरा होने के 24 घंटे बाद एक्सपायर हो जाता है। PerfectVector के नतीजे और डाउनलोड

अपने डेटाबेस और HTTP क्लाइंट के साथ वर्कर लागू करने के लिए नीचे का छद्म कोड इस्तेमाल करें। आगे के टेस्ट में माना गया है कि वर्कर हर अनुरोध लॉग करता है और दूसरी कन्वर्ज़न ID कमिट होने के तुरंत बाद सिर्फ़ टेस्ट के लिए रुक सकता है।

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

तीन फ़ाइलों से दोबारा शुरू करने का टेस्ट चलाएँ

दो छोटे PNG लोगो और एक खराब PNG लें। खराब फ़ाइल जानबूझकर रखें ताकि देख सकें कि अस्वीकृति के बाद क्यू आगे बढ़ती है या नहीं। टेस्ट की से दोनों मान्य फ़ाइलों के लिए सैंपल SVG आना चाहिए। खराब फ़ाइल वैलिडेशन में अस्वीकृत होनी चाहिए और आउटपुट फ़ोल्डर में उसके लिए कुछ सेव नहीं होना चाहिए। टेस्ट मोड दोनों मान्य फ़ाइलों के लिए वही सैंपल SVG लौटाता है। PerfectVector टेस्ट मोड

  1. पहली फ़ाइल को saved तक पहुँचने दें। दूसरी मान्य फ़ाइल की ID लिख जाने के बाद वर्कर रोकें, इससे पहले कि उसका आउटपुट सेव हो।
  2. वर्कर दोबारा शुरू करें। पुष्टि करें कि वह पहली फ़ाइल छोड़ देता है और मौजूदा कन्वर्ज़न ID से दूसरी डाउनलोड करता है।
  3. देखें कि खराब फ़ाइल समस्या कोड के साथ नाकामी की रिपोर्ट में है और उसके लिए SVG नहीं लिखा गया।
  4. वर्कर एक बार और चलाएँ। देखें कि दोनों सेव की हुई फ़ाइलें वहीं हैं और कोई सफल अपलोड दोबारा नहीं भेजा गया।

हमने टेस्ट की से API पर रीस्टार्ट की जाँच की। वर्कर ने दो सैंपल SVG सेव किए, एक खराब इनपुट को अस्वीकृत दर्ज किया और दूसरी सफल फ़ाइल का नतीजा उसकी मौजूदा ID से पाया। आखिरी रन ने कोई अनुरोध नहीं भेजा। टेस्ट कन्वर्ज़न तुरंत पूरे हो जाते हैं, इसलिए लंबित स्थिति की जाँच के लिए स्थानीय टेस्ट डेटा इस्तेमाल करें।

अक्सर पूछे जाने वाले सवाल

क्या सभी फ़ाइलें एक ही API कॉल में भेज सकते हैं?

PerfectVector API v1 हर POST में एक इमेज स्वीकार करती है। बैच को अलग-अलग अनुरोधों में भेजें। लाइव काम में अकाउंट की समवर्ती सीमा मानें और अगला अनुरोध भेजने से पहले मौजूदा कन्वर्ज़न पूरा होने दें। PerfectVector API की सीमाएँ

SVG का लिंक पहले ही एक्सपायर हो गया हो तो क्या करें?

पहले डाउनलोड किया था तो अपना सेव किया हुआ SVG इस्तेमाल करें। अगर नहीं, तो कन्वर्ज़न स्टेटस जाँचें और तय करें कि नया ऑपरेशन शुरू करना है या नहीं। नया लाइव कन्वर्ज़न सफल होने पर एक और क्रेडिट लग सकता है। PerfectVector के नतीजे और डाउनलोड

स्रोत

  1. PerfectVector — सीमाएँ — फ़ाइल की जाँच और अकाउंट की डिफ़ॉल्ट समवर्ती सीमा।
  2. PerfectVector — आइडेम्पोटेंसी — की का दायरा, दोबारा भेजने का समय और समान इनपुट की शर्त।
  3. PerfectVector — इंतज़ार और असिंक्रोनस प्रोसेसिंग — असिंक्रोनस सबमिशन और स्टेटस जाँचना।
  4. PerfectVector — नतीजे — डाउनलोड, नाकामी और नतीजे की एक्सपायरी।
  5. PerfectVector — टेस्ट मोड — अपलोड की कौन-सी जाँच और नतीजे टेस्ट की से सत्यापित होते हैं।
  6. PerfectVector — त्रुटियाँ — Retry-After की प्रतीक्षा, अंतिम नाकामी और नई की कब इस्तेमाल करें।

PerfectVector API पेज से टेस्ट की लें और अपनी तीन फ़ाइलों से टेस्ट चलाएँ। जाँचें कि हर सफल रिकॉर्ड का SVG डिस्क पर मौजूद है और दोबारा शुरू करने पर पूरे हो चुके रिकॉर्ड फिर से नहीं भेजे जाते।

Blog से और

PerfectVector

अपनी इमेज को
साफ़, एडिट करने योग्य वेक्टर पाथ में बदलें

वेक्टराइज़ करें और प्रीव्यू जाँचें — मुफ़्त और बिना किसी दैनिक सीमा के।