इस पेज में बताया गया है कि 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
में एक यूनीक यूआरएल होता है. इसका इस्तेमाल इन कामों के लिए किया जाना चाहिए
बचे हुए सभी अनुरोधों के ज़रिए, अपलोड पूरा करें. इसे कॉपी करें और सेव करें
सेशन यूआरएल को फिर से शुरू किया जा सकता है, ताकि आप बाद के अनुरोधों के लिए इसका इस्तेमाल कर सकें.
तीसरा चरण: फ़ाइल अपलोड करना
फिर से शुरू किए जाने वाले सेशन वाली फ़ाइल को अपलोड करने के दो तरीके हैं:
- एक ही अनुरोध में. आम तौर पर, यह तरीका सबसे अच्छा होता है. क्योंकि इसके लिए कम अनुरोधों की ज़रूरत होती है और इसलिए इसका परफ़ॉर्मेंस बेहतर है.
-
कई हिस्सों में. इस तरीके से, अपलोड किए जाते हैं डेटा को छोटा करके कई अनुरोधों में भेजना है. डेटा को
x-goog-upload-chunk-granularity
के मल्टीपल में बांटा जाता है. अगर ज़रूरी हो, एक साथ दिखने वाले कई अनुरोधों के लिए फिर से कोशिश की जा सकती है.इस तरीके का इस्तेमाल तब करें, जब:
- आपको एक ही बार में, ट्रांसफ़र किए जाने वाले डेटा को कम करना होगा अनुरोध. अलग-अलग अनुरोधों के लिए तय समयसीमा होने पर, आपको ऐसा करना पड़ सकता है.
- आपको अपलोड की प्रोग्रेस दिखाने वाला, पसंद के मुताबिक बनाया गया इंडिकेटर देना होगा.
- आपको यह जानने की ज़रूरत है कि डेटा को खारिज करना कब सुरक्षित होता है.
एक बार किया गया अनुरोध
किसी एक अनुरोध में फ़ाइल अपलोड करने के लिए:
- फिर से शुरू किए जा सकने वाले सेशन यूआरएल के लिए,
POST
अनुरोध बनाएं. - अनुरोध के मुख्य हिस्से में फ़ाइल का डेटा जोड़ें.
ये एचटीटीपी हेडर जोड़ें:
Content-Length
: टेक्स्ट बॉक्स में बाइट की संख्या फ़ाइल से लिए जाते हैं.X-Goog-Upload-Command
:upload, finalize
पर सेट करें.
अनुरोध भेजें.
अगर अपलोड करने के अनुरोध में रुकावट आती है या आपको 5xx
मिलता है
प्रतिक्रिया के रूप में, तो किसी व्यक्तिगत संपर्क के लिए
अपलोड की प्रोसेस में रुकावट आई.
अनुरोध पूरा होने पर, आपको 200 OK
एचटीटीपी स्टेटस मिलेगा
रिस्पॉन्स के मुख्य हिस्से में कोड और अपलोड टोकन शामिल करें.
बनाएं
मीडिया आइटम.
एक से ज़्यादा चंक
फ़ाइल को कई हिस्सों में अपलोड करने के लिए:
- फिर से शुरू किए जा सकने वाले सेशन यूआरएल के लिए,
POST
अनुरोध बनाएं. -
अनुरोध के मुख्य हिस्से में डेटा समूह का डेटा जोड़ें.
अपलोड को पूरा करने वाले आखिरी हिस्से को छोड़कर, अन्य हिस्से, खंडों के स्वीकार किए जा सकने वाले साइज़ के गुणज में. बनाए रखें डेटा को जितना हो सके उतना बड़ा करें, ताकि अपलोड बेहतर तरीके से हो सके.
-
ये एचटीटीपी हेडर जोड़ें:
Content-Length
: टेक्स्ट बॉक्स में बाइट की संख्या डेटा का हिस्सा.X-Goog-Upload-Command
:upload
पर सेट करें. आखिरी डेटा वाले हिस्से के लिए,upload, finalize
पर सेट करें.X-Goog-Upload-Offset
: उस ऑफ़सेट पर सेट करें जिस पर बाइट लिखी जानी चाहिए. ध्यान दें कि बाइट अपलोड करना ज़रूरी है क्रम से. पहला ऑफ़सेट0
है.
- अनुरोध भेजें.
अगर अपलोड करने के अनुरोध में रुकावट आती है या आपको
5xx
मिलता है प्रतिक्रिया के रूप में, तो किसी व्यक्तिगत संपर्क के लिए अपलोड की प्रोसेस में रुकावट आई. - फ़ाइल में बचे हुए हर हिस्से के लिए यह तरीका दोहराएं.
अनुरोध पूरा होने पर, आपको 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
नहीं है, जो बताता है कि अपलोड में
पहले ही खत्म कर दिया गया है.