फिर से शुरू करने लायक अपलोड किया जा रहा है

इस पेज पर Street View Publishing API में, फिर से अपलोड करने के लिए अनुरोध करने का तरीका बताया गया है. इस प्रोटोकॉल की मदद से, अपलोड की कार्रवाई फिर से शुरू की जा सकती है. ऐसा तब किया जाता है, जब किसी बातचीत के दौरान डेटा के फ़्लो में रुकावट आती है. इस विकल्प का इस्तेमाल तब करें, जब:

  • बड़ी फ़ाइलें अपलोड की जा रही हैं.
  • नेटवर्क में रुकावट या किसी अन्य तरह का ट्रांसमिशन खराब होने की संभावना ज़्यादा है. उदाहरण के लिए, अगर मोबाइल ऐप्लिकेशन से फ़ाइल अपलोड की जा रही हो.

नेटवर्क के बंद होने पर भी, फिर से शुरू किए जा सकने वाले अपलोड, बैंडविथ के इस्तेमाल को कम कर सकते हैं. ऐसा इसलिए होता है, क्योंकि आपको शुरुआत से ही बड़ी फ़ाइल अपलोड करने की सुविधा को रीस्टार्ट करने की ज़रूरत नहीं होती.

अगर छोटी फ़ाइलें एक भरोसेमंद इंटरनेट कनेक्शन का इस्तेमाल करके भेजी जा रही हैं, तो

फिर से शुरू किए जा सकने वाले अपलोड सेशन को शुरू करना

uploadUrl पाने के बाद, आप फिर से शुरू किए जा सकने वाले अपलोड सेशन शुरू कर सकते हैं:

  1. uploadUrl के लिए POST अनुरोध करें.
  2. यहां दिए गए एचटीटीपी हेडर जोड़ें:

    • X-Goog-Upload-Protocol: resumable पर सेट करें.
    • X-Goog-Upload-Header-Content-Length: फ़ाइल डेटा की कुल बाइट की संख्या पर सेट करें, जिसे बाद के अनुरोधों में ट्रांसफ़र किया जाएगा.
    • X-Goog-Upload-Header-Content-Type: फ़ाइल डेटा के MIME टाइप पर सेट करें.
    • X-Goog-Upload-Command: start पर सेट करें.
  3. अनुरोध भेजें.

उदाहरण: फिर से शुरू किए जा सकने वाले अपलोड सेशन को शुरू करना

इस उदाहरण में, नई फ़ाइल अपलोड करने के लिए, फिर से शुरू होने वाले सेशन को शुरू करने का तरीका बताया गया है. इस मामले में, यह एक इमेज है और फ़ाइल में कुल बाइट की संख्या 42,00,000 है. ध्यान दें कि अनुरोध का मुख्य हिस्सा खाली है. इसलिए, Content-Length हेडर 0 पर सेट है.

POST https://streetviewpublish.googleapis.com/media/user/123456789/photo/01234 HTTP/1.1
Authorization: Bearer [YOUR_AUTH_TOKEN]
Content-Length: 0
X-Goog-Upload-Protocol: resumable
X-Goog-Upload-Header-Content-Length: 4200000
X-Goog-Upload-Header-Content-Type: image/jpeg
X-Goog-Upload-Command: start

फिर से शुरू किए जा सकने वाले सेशन का यूआरएल सेव करने से, यह पता चलता है कि फिर से शुरू किए जा सकने वाले अपलोड सेशन को शुरू करने के अनुरोध पर मिलने वाले रिस्पॉन्स को कैसे मैनेज किया जाए.

फिर से शुरू किए जा सकने वाले सेशन का यूआरएल सेव करना

फिर से शुरू किए जा सकने वाले अपलोड सेशन शुरू करने के लिए भेजे गए अनुरोध के लिए, सर्वर 200 OK एचटीटीपी स्टेटस कोड के साथ जवाब देगा. इसमें यह हेडर भी शामिल होगा:

  • X-Goog-Upload-URL: एक यूनीक यूआरएल, जिसका इस्तेमाल बाकी सभी अनुरोधों के ज़रिए अपलोड पूरा करने के लिए किया जाना चाहिए.

फिर से शुरू किए जा सकने वाले यूआरएल को कॉपी करें और सेव करें, ताकि आप इसे बाद के अनुरोधों के लिए इस्तेमाल कर सकें.

उदाहरण: फिर से शुरू होने लायक सेशन का यूआरएल सेव करना

नीचे दिए गए उदाहरण में एक रिस्पॉन्स दिखाया गया है, जिसमें एक फिर से शुरू किए जा सकने वाले सेशन यूआरएल और साइज़ के बारे में ज़रूरी जानकारी शामिल है.

HTTP/1.1 200 OK
X-Goog-Upload-URL: https://streetviewpublish.googleapis.com/media/user/123456789/photo/01234?upload_id=AEnB2U&upload_protocol=resumable

फ़ाइल अपलोड की जा रही है

फिर से शुरू किए जा सकने वाले सेशन के साथ फ़ाइल अपलोड करने के दो तरीके हैं:

  1. एक ही अनुरोध में. यह तरीका आम तौर पर सबसे अच्छा है, क्योंकि इसके लिए कम अनुरोधों की ज़रूरत होती है और इस वजह से इसका परफ़ॉर्मेंस बेहतर होता है.
  2. कई हिस्सों में. इसका इस्तेमाल तब करें, जब:
    • आपको किसी एक अनुरोध में ट्रांसफ़र किए जाने वाले डेटा की मात्रा को कम करना होगा. ऐसा तब करना पड़ सकता है, जब हर अनुरोध की समयसीमा तय हो.
    • आपको अपलोड की प्रोग्रेस दिखाने वाला कस्टमाइज़ किया गया इंंडिकेटर देना होगा.
    • आपको यह पता होना चाहिए कि डेटा को खारिज करना कब सुरक्षित होता है.

एक अनुरोध

एक ही अनुरोध में फ़ाइल अपलोड करने के लिए:

  1. फिर से शुरू किए जाने लायक सेशन यूआरएल के लिए POST अनुरोध बनाएं.
  2. अनुरोध के मुख्य हिस्से में फ़ाइल का डेटा जोड़ें.
  3. यहां दिए गए एचटीटीपी हेडर जोड़ें:

    • Content-Length: फ़ाइल में बाइट की संख्या पर सेट करें.
    • X-Goog-Upload-Command: upload, finalize पर सेट करें.
  4. अनुरोध भेजें.

अगर अपलोड के अनुरोध में रुकावट आती है या आपको 5xx जवाब मिलता है, तो इस प्रोसेस में हुई रुकावट को फिर से शुरू करने के लिए बताया गया तरीका अपनाएं.

एक से ज़्यादा चंक

फ़ाइल को कई हिस्सों में अपलोड करने के लिए:

  1. फिर से शुरू किए जाने लायक सेशन यूआरएल के लिए POST अनुरोध बनाएं.
  2. समूह का डेटा अनुरोध के मुख्य भाग में जोड़ें. अपलोड को पूरा करने वाले आखिरी हिस्से को छोड़कर, 2 एमआईबी (मीबीबाइट) के मल्टीपल में हिस्से बनाएं. समूह के साइज़ को जितना हो सके बड़ा रखें, ताकि डेटा बेहतर तरीके से अपलोड हो सके.
  3. यहां दिए गए एचटीटीपी हेडर जोड़ें:

    • Content-Length: हिस्से में बाइट की संख्या पर सेट करें.
    • X-Goog-Upload-Command: upload पर सेट करें. आखिरी हिस्से के लिए, upload, finalize पर सेट करें.
    • X-Goog-Upload-Offset: उस ऑफ़सेट पर सेट करें जिस पर बाइट लिखी जानी चाहिए. ध्यान दें कि बाइट को क्रम से अपलोड करना होगा.
  4. अनुरोध भेजें. अगर अपलोड के अनुरोध में रुकावट आती है या आपको 5xx का जवाब मिलता है, तो इस प्रोसेस में रुकावट आने की प्रोसेस को फिर से शुरू करने के लिए बताया गया तरीका अपनाएं.

  5. फ़ाइल में बचे हुए हर हिस्से के लिए, पहले से लेकर चौथे चरण तक की प्रोसेस दोहराएं.

उदाहरण: फ़ाइल अपलोड करना

एक अनुरोध

नीचे दिए गए उदाहरण में, पिछले चरण में मिले सेशन यूआरएल का इस्तेमाल करके, 42,00,000 बाइट वाली पूरी JPEG फ़ाइल को एक ही अनुरोध में फिर से अपलोड करने का अनुरोध दिखाया गया है.

POST https://streetviewpublish.googleapis.com/media/user/123456789/photo/01234?upload_id=AEnB2U&upload_protocol=resumable HTTP/1.1
Content-Length: 4200000
X-Goog-Upload-Command: upload, finalize
X-Goog-Upload-Offset: 0

[BYTES 0-4199999]

अगर अनुरोध पूरा हो जाता है, तो आपको एक 200 OK एचटीटीपी स्टेटस कोड मिलेगा.

एक से ज़्यादा चंक

नीचे दिए गए उदाहरण में, 42,00,000 बाइट वाली JPEG फ़ाइल को कई हिस्सों में अपलोड करने का फिर से शुरू किया जा सकने वाला अनुरोध दिखाया गया है. इसमें, फिर से शुरू किए जा सकने वाले सेशन यूआरएल और पिछले चरण में मिली साइज़ की जानकारी का इस्तेमाल किया गया है. इस उदाहरण में 20,97,000 बाइट के छोटे साइज़ का इस्तेमाल किया गया है. यह 2 एमबी (मीबीबाइट) का गुणांक है.

पहला समूह:

POST https://streetviewpublish.googleapis.com/media/user/123456789/photo/01234?upload_id=AEnB2U&upload_protocol=resumable HTTP/1.1
Content-Length: 2097000
X-Goog-Upload-Command: upload
X-Goog-Upload-Offset: 0

[BYTES 0-2096999]

दूसरा हिस्सा:

POST https://streetviewpublish.googleapis.com/media/user/123456789/photo/01234?upload_id=AEnB2U&upload_protocol=resumable HTTP/1.1
Content-Length: 2097000
X-Goog-Upload-Command: upload
X-Goog-Upload-Offset: 2097000

[BYTES 2097000-4193999]

पिछला हिस्सा:

POST https://streetviewpublish.googleapis.com/media/user/123456789/photo/01234?upload_id=AEnB2U&upload_protocol=resumable HTTP/1.1
Content-Length: 6000
X-Goog-Upload-Command: upload, finalize
X-Goog-Upload-Offset: 4194000

[BYTES 4194000-4200000]

किसी बाधित अपलोड को फिर से शुरू करना

अगर अपलोड करने के अनुरोध में रुकावट आती है या आपको बिना 200 वाला एचटीटीपी स्टेटस कोड मिलता है, तो सर्वर से पूछें कि कितना डेटा अपलोड हो सका:

  1. फिर से शुरू किए जाने लायक सेशन यूआरएल के लिए POST अनुरोध बनाएं.
  2. X-Goog-Upload-Command को query पर सेट करें.
  3. अनुरोध भेजें.

सर्वर, 200 OK एचटीटीपी स्टेटस कोड और अपलोड के मौजूदा साइज़ के साथ जवाब देगा:

HTTP/1.1 200 OK
X-Goog-Upload-Status: active
X-Goog-Upload-Size-Received: 100

इसके बाद, इस ऑफ़सेट से फिर से अपलोड करना शुरू किया जा सकता है. आपको सर्वर से मिलने वाले ऑफ़सेट पर तब तक फिर से शुरू करना होगा, जब तक कि आप एक साथ अपलोड और निर्देश नहीं भेजते. इस स्थिति में, ऑफ़सेट 0 पर भी फिर से शुरू किया जा सकता है.

अगर आपकी क्वेरी कमांड के एचटीटीपी रिस्पॉन्स में X-Goog-Upload-Status हेडर मौजूद है और वैल्यू active नहीं है, तो इसका मतलब है कि अपलोड पहले ही बंद कर दिया गया है.