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

इस पेज में बताया गया है कि Google Photos Library API के लिए, फिर से अपलोड करने का अनुरोध कैसे किया जा सकता है REST प्रोटोकॉल से होकर. इस प्रोटोकॉल से, फ़ाइल अपलोड करने की प्रोसेस फिर से शुरू की जा सकती है कम्यूनिकेशन में गड़बड़ी होने पर, डेटा का फ़्लो बिगड़ जाता है.

फिर से शुरू करने लायक अपलोड विकल्प का इस्तेमाल करें, अगर:

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

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

पहला चरण: अपलोड सेशन शुरू करना

इस पते पर एक पोस्ट अनुरोध भेजकर, फिर से शुरू किए जा सकने वाले अपलोड सेशन को शुरू करें https://photoslibrary.googleapis.com/v1/uploads. फिर से शुरू किए जा सकने वाले अपलोड का इस्तेमाल करना इस अनुरोध में यूआरएल दिया गया है. फ़ाइल अपलोड करें.

पीओएसटी अनुरोध में ये हेडर शामिल होने चाहिए:

हेडर फ़ील्ड
Content-Length 0 पर सेट करें, क्योंकि अनुरोध का मुख्य हिस्सा खाली है.
X-Goog-Upload-Command start पर सेट करें.
X-Goog-Upload-Content-Type फ़ाइल के MIME टाइप पर सेट करें. उदाहरण के लिए, image/jpeg.
X-Goog-Upload-Protocol resumable पर सेट करें.
X-Goog-Upload-Raw-Size ट्रांसफ़र की जाने वाली फ़ाइल के डेटा के बाइट की कुल संख्या पर सेट करें.

यहां पोस्ट अनुरोध का हेडर दिया गया है:

POST https://photoslibrary.googleapis.com/v1/uploads
Authorization: Bearer oauth2-token
Content-Length: 0
X-Goog-Upload-Command: start
X-Goog-Upload-Content-Type: mime-type
X-Goog-Upload-Protocol: resumable
X-Goog-Upload-Raw-Size: bytes-of-file

दूसरा चरण: सेशन का यूआरएल सेव करना

सफल होने पर, पोस्ट अनुरोध एक 200 OK एचटीटीपी स्टेटस कोड दिखाता है, जिसमें यह शामिल होता है यहां दिया गया हेडर.

X-Goog-Upload-URL: url-to-make-uploads-to
X-Goog-Upload-Chunk-Granularity: chunk-granularity-in-bytes

हेडर फ़ील्ड x-goog-upload-chunk-granularity में बाइट अलाइनमेंट है और क्लाइंट के भेजे गए सभी डेटा सेगमेंट के लिए, साइज़ की जानकारी का लेवल. अगर अपलोड है कई हिस्सों में अपलोड किया जाता है. पिछले अपलोड को छोड़कर, बाकी सभी अपलोड के लिए, इस वैल्यू के मल्टीपल में डालना ज़रूरी है. इसका मतलब है कि फ़ाइल की अपलोड बाइट इस वैल्यू से अलाइन होनी चाहिए. आखिरी हिस्से में, बची हुई जानकारी अपलोड की जा सकती है बाइट हैं.

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

तीसरा चरण: फ़ाइल अपलोड करना

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

  1. एक ही अनुरोध में. आम तौर पर, यह तरीका सबसे अच्छा होता है. क्योंकि इसके लिए कम अनुरोधों की ज़रूरत होती है और इसलिए इसका परफ़ॉर्मेंस बेहतर है.
  2. कई हिस्सों में. इस तरीके से, अपलोड किए जाते हैं डेटा को छोटा करके कई अनुरोधों में भेजना है. डेटा को x-goog-upload-chunk-granularity के मल्टीपल में बांटा जाता है. अगर ज़रूरी हो, एक साथ दिखने वाले कई अनुरोधों के लिए फिर से कोशिश की जा सकती है.

    इस तरीके का इस्तेमाल तब करें, जब:

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

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

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

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

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

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

अनुरोध पूरा होने पर, आपको 200 OK एचटीटीपी स्टेटस मिलेगा रिस्पॉन्स के मुख्य हिस्से में कोड और अपलोड टोकन शामिल करें. बनाएं मीडिया आइटम.

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

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

  1. फिर से शुरू किए जा सकने वाले सेशन यूआरएल के लिए, POST अनुरोध बनाएं.
  2. अनुरोध के मुख्य हिस्से में डेटा समूह का डेटा जोड़ें.

    अपलोड को पूरा करने वाले आखिरी हिस्से को छोड़कर, अन्य हिस्से, खंडों के स्वीकार किए जा सकने वाले साइज़ के गुणज में. बनाए रखें डेटा को जितना हो सके उतना बड़ा करें, ताकि अपलोड बेहतर तरीके से हो सके.

  3. ये एचटीटीपी हेडर जोड़ें:

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

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

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

अनुरोध पूरा होने पर, आपको 200 OK एचटीटीपी स्टेटस मिलेगा रिस्पॉन्स के मुख्य हिस्से में कोड और अपलोड टोकन शामिल करें. बनाएं मीडिया आइटम.

उदाहरण

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

नीचे दिए गए उदाहरण में, आपके Google Ads खाते की एक अनुरोध में 3,039,417-बाइट वाली JPEG फ़ाइल.

POST https://photoslibrary.googleapis.com/v1/uploads HTTP/1.1
Content-Length: 0
X-Goog-Upload-Command: start
X-Goog-Upload-Content-Type: image/jpeg
X-Goog-Upload-Protocol: resumable
X-Goog-Upload-Raw-Size: 3039417
[no body]

रिस्पॉन्स में, अपलोड यूआरएल और डेटा का अनुमानित साइज़ शामिल होता है:

HTTP/1.1 200 OK
X-Goog-Upload-URL: https://photoslibrary.googleapis.com/v1/uploads?upload_id=AEnB2Urq&upload_protocol=resumable
X-Goog-Upload-Chunk-Granularity: 262144

अपलोड करने का आखिरी अनुरोध:

POST https://photoslibrary.googleapis.com/v1/uploads?upload_id=AEnB2Urq&upload_protocol=resumable HTTP/1.1
Content-Length: 3039417
X-Goog-Upload-Command: upload, finalize
X-Goog-Upload-Offset: 0

[BYTES 0-4199999]

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

नीचे दिए गए उदाहरण में, आपके Google Ads खाते की फिर से शुरू किए जा सकने वाले सेशन का इस्तेमाल करके,कई हिस्सों में 3,039, 417-बाइट वाली JPEG फ़ाइल यूआरएल और पिछले चरण में मिले डेटा का स्वीकार किया गया डेटा समूह. इस उदाहरण में, 2,62,144 बाइट के चंक साइज़ का इस्तेमाल किया गया है. यह साइज़, अपलोड सेशन शुरू होने पर, हेडर फ़ील्ड x-goog-upload-chunk-granularity में दिखाया गया था. ध्यान दें कि हर अपलोड में ऐसे बाइट होते हैं जो जो 2,62,144 के मल्टीपल में आती है.

अपलोड सेशन शुरू करें, ताकि अपलोड यूआरएल और चंक साइज़ पाया जा सके. इसके लिए, पिछले चरण में बताए गए तरीके का इस्तेमाल करें:

POST https://photoslibrary.googleapis.com/v1/uploads HTTP/1.1
Content-Length: 0
X-Goog-Upload-Command: start
X-Goog-Upload-Content-Type: image/jpeg
X-Goog-Upload-Protocol: resumable
X-Goog-Upload-Raw-Size: 3039417
[no body]

रिस्पॉन्स में, अपलोड यूआरएल और डेटा का अनुमानित साइज़ शामिल होता है:

HTTP/1.1 200 OK
X-Goog-Upload-URL: https://photoslibrary.googleapis.com/v1/uploads?upload_id=AEnB2Urq&upload_protocol=resumable
X-Goog-Upload-Chunk-Granularity: 262144

पहला समूह:

POST https://photoslibrary.googleapis.com/v1/uploads?upload_id=AEnB2Urq&upload_protocol=resumable HTTP/1.1
Content-Length: 1048576
X-Goog-Upload-Command: upload
X-Goog-Upload-Offset: 0

[BYTES 0-1048575]

दूसरा समूह:

POST https://photoslibrary.googleapis.com/v1/uploads?upload_id=AEnB2Urq&upload_protocol=resumable HTTP/1.1
Content-Length: 1048576
X-Goog-Upload-Command: upload
X-Goog-Upload-Offset: 1048576

[BYTES 1048576-2097151]

आखिरी हिस्सा:

POST https://photoslibrary.googleapis.com/v1/uploads?upload_id=AEnB2Urq&upload_protocol=resumable HTTP/1.1
Content-Length: 942265
X-Goog-Upload-Command: upload, finalize
X-Goog-Upload-Offset: 2097152

[BYTES 2097152-4200000]

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

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

यहां फिर से शुरू किए जा सकने वाले सेशन के यूआरएल के लिए, POST का अनुरोध दिया गया है. X-Goog-Upload-Command query पर सेट होना चाहिए.

POST https://photoslibrary.googleapis.com/v1/uploads?upload_id=AEnB2Urq&upload_protocol=resumable HTTP/1.1
Content-Length: 0
X-Goog-Upload-Command: query

सर्वर से मिले रिस्पॉन्स में एक 200 OK एचटीटीपी स्टेटस कोड और अपलोड का मौजूदा साइज़.

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

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

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