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

इस पेज पर, Street View Publish 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. फ़ाइल में बचे हुए हर चंक के लिए, पहले से चौथे चरण तक दोहराएं.

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

एक बार किया गया अनुरोध

यहां दिए गए उदाहरण में, एक ही अनुरोध में 4,200,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 एचटीटीपी स्टेटस कोड मिलेगा.

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

यहां दिए गए उदाहरण में, 4,200,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 नहीं है, तो इसका मतलब है कि अपलोड पहले ही बंद हो चुका है.