Google Drive API, डाउनलोड और एक्सपोर्ट करने से जुड़ी कई कार्रवाइयों के साथ काम करता है. इनके बारे में यहां दी गई टेबल में बताया गया है:
| डाउनलोड करने से जुड़ी कार्रवाइयां |
|
||||
| कार्रवाइयां एक्सपोर्ट करना |
|
फ़ाइल का कॉन्टेंट डाउनलोड या एक्सपोर्ट करने से पहले, पुष्टि करें कि लोग files संसाधन पर मौजूद capabilities.canDownload फ़ील्ड का इस्तेमाल करके फ़ाइल डाउनलोड कर सकते हैं.
यहां बताए गए फ़ाइल टाइप के बारे में जानने के लिए, फ़ाइल टाइप लेख पढ़ें. इसमें blob और Google Workspace फ़ाइलों के बारे में भी बताया गया है.
इस गाइड के बाकी हिस्से में, डाउनलोड और एक्सपोर्ट करने से जुड़ी इन कार्रवाइयों को पूरा करने के बारे में ज़्यादा जानकारी दी गई है.
ब्लॉब फ़ाइल का कॉन्टेंट डाउनलोड करें
Drive पर सेव की गई किसी बड़ी फ़ाइल को डाउनलोड करने के लिए, files.get तरीके का इस्तेमाल करें. इसके लिए, डाउनलोड की जाने वाली फ़ाइल का आईडी और alt=media यूआरएल पैरामीटर इस्तेमाल करें. alt=media यूआरएल पैरामीटर, सर्वर को बताता है कि कॉन्टेंट को डाउनलोड करने का अनुरोध किया जा रहा है, ताकि उसे जवाब के वैकल्पिक फ़ॉर्मैट के तौर पर इस्तेमाल किया जा सके.
alt=media यूआरएल पैरामीटर एक सिस्टम पैरामीटर है. यह Google के सभी REST API में उपलब्ध होता है. अगर Drive API के लिए क्लाइंट लाइब्रेरी का इस्तेमाल किया जाता है, तो आपको इस पैरामीटर को साफ़ तौर पर सेट करने की ज़रूरत नहीं है.
यहां दिए गए कोड के उदाहरण में, Drive API क्लाइंट लाइब्रेरी के साथ किसी फ़ाइल को डाउनलोड करने के लिए, files.get तरीके का इस्तेमाल करने का तरीका बताया गया है.
Apps Script
/**
* Downloads a file from Drive.
* @param {string} fileId The ID of the file to download.
* @return {Blob} The file content as a Blob.
*/
function downloadFile(fileId) {
var url = 'https://www.googleapis.com/drive/v3/files/' + fileId + '?alt=media';
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
}
});
return response.getBlob();
}
Java
Python
Node.js
PHP
.NET
इस कोड सैंपल में, लाइब्रेरी के ऐसे तरीके का इस्तेमाल किया गया है जो एचटीटीपी अनुरोध में alt=media यूआरएल पैरामीटर
जोड़ता है.
आपके ऐप्लिकेशन से शुरू किए गए फ़ाइल डाउनलोड को ऐसे स्कोप के साथ अनुमति दी जानी चाहिए जो फ़ाइल के कॉन्टेंट को पढ़ने की अनुमति देता हो. उदाहरण के लिए, drive.readonly.metadata स्कोप का इस्तेमाल करने वाले ऐप्लिकेशन को फ़ाइल के कॉन्टेंट डाउनलोड करने की अनुमति नहीं है.
इस कोड सैंपल में, “drive” फ़ाइल के स्कोप का इस्तेमाल किया गया है. इस पर पाबंदी लगी हुई है. इससे उपयोगकर्ताओं को आपकी सभी Drive फ़ाइलों को देखने और मैनेज करने की अनुमति मिलती है. Drive के स्कोप के बारे में ज़्यादा जानने के लिए, Google Drive API के स्कोप चुनना लेख पढ़ें.
जिन उपयोगकर्ताओं के पास owner अनुमतियां (मेरी ड्राइव में मौजूद फ़ाइलों के लिए) या organizer अनुमतियां (शेयर की गई ड्राइव में मौजूद फ़ाइलों के लिए) होती हैं वे DownloadRestrictionsMetadata ऑब्जेक्ट के ज़रिए, डाउनलोड करने पर पाबंदी लगा सकते हैं. ज़्यादा जानकारी के लिए, लोगों को, आपकी फ़ाइल डाउनलोड करने, प्रिंट करने या उसे कॉपी करने से रोकना लेख पढ़ें.
गलत इस्तेमाल के तौर पर पहचानी गई फ़ाइलें (जैसे कि नुकसान पहुंचाने वाला सॉफ़्टवेयर) सिर्फ़ फ़ाइल का मालिक डाउनलोड कर सकता है.
इसके अलावा, get क्वेरी पैरामीटर acknowledgeAbuse=true को शामिल करना ज़रूरी है, ताकि यह पता चल सके कि उपयोगकर्ता ने संभावित रूप से अवांछित सॉफ़्टवेयर या अन्य आपत्तिजनक फ़ाइलों को डाउनलोड करने के जोखिम को स्वीकार कर लिया है. आपका ऐप्लिकेशन, इस क्वेरी पैरामीटर का इस्तेमाल करने से पहले, उपयोगकर्ता को इंटरैक्टिव तरीके से चेतावनी दे.
कुछ हिस्सा डाउनलोड करना
कुछ हिस्सा डाउनलोड करने का मतलब है कि फ़ाइल का सिर्फ़ वह हिस्सा डाउनलोड किया जाता है जिसे आपने चुना है. Range हेडर के साथ बाइट रेंज का इस्तेमाल करके, फ़ाइल का वह हिस्सा तय किया जा सकता है जिसे आपको डाउनलोड करना है. उदाहरण के लिए:
Range: bytes=500-999
ब्लॉब फ़ाइल के कॉन्टेंट को पिछले वर्शन में डाउनलोड करना
सिर्फ़ उन कॉन्टेंट वर्शन को डाउनलोड किया जा सकता है जिन्हें "हमेशा के लिए रखें" के तौर पर मार्क किया गया है. अगर आपको किसी बदलाव को डाउनलोड करना है, तो पहले उसे "हमेशा बनाए रखें" पर सेट करें. ज़्यादा जानकारी के लिए, अपने-आप मिटने की सुविधा से सेव करने के लिए, वर्शन तय करना लेख पढ़ें.
किसी पुराने वर्शन में मौजूद, बड़ी बाइनरी फ़ाइलों (ब्लॉब फ़ाइलें) का कॉन्टेंट डाउनलोड करने के लिए, revisions.get तरीके का इस्तेमाल करें. इसके लिए, आपको डाउनलोड की जाने वाली फ़ाइल का आईडी, बदलाव का आईडी, और alt=media यूआरएल पैरामीटर देना होगा. alt=media यूआरएल पैरामीटर, सर्वर को बताता है कि कॉन्टेंट को डाउनलोड करने का अनुरोध, जवाब के वैकल्पिक फ़ॉर्मैट के तौर पर किया जा रहा है. files.get की तरह, revisions.get वाला तरीका भी वैकल्पिक क्वेरी पैरामीटर acknowledgeAbuse और Range हेडर स्वीकार करता है. ज़्यादा जानकारी के लिए, लंबे समय तक चलने वाले ऑपरेशन मैनेज करना लेख पढ़ें.
अनुरोध प्रोटोकॉल यहां दिखाया गया है.
GET https://www.googleapis.com/drive/v3/files/{FILE_ID}/revisions/{REVISION_ID}?alt=mediaब्राउज़र में, blob फ़ाइल का कॉन्टेंट डाउनलोड करना
अगर आपको एपीआई के बजाय ब्राउज़र में Drive पर सेव की गई बड़ी बाइनरी फ़ाइलों का कॉन्टेंट डाउनलोड करना है, तो files रिसॉर्स के webContentLink फ़ील्ड का इस्तेमाल करें. अगर उपयोगकर्ता के पास फ़ाइल डाउनलोड करने का ऐक्सेस है, तो उसे फ़ाइल और उसके कॉन्टेंट को डाउनलोड करने का लिंक मिलता है. आपके पास उपयोगकर्ता को इस यूआरएल पर रीडायरेक्ट करने या इसे क्लिक किए जा सकने वाले लिंक के तौर पर उपलब्ध कराने का विकल्प होता है.
लंबे समय तक चलने वाली कार्रवाइयों के दौरान, blob फ़ाइल का कॉन्टेंट डाउनलोड करना
लंबे समय तक चलने वाले ऑपरेशन के दौरान, blob फ़ाइलों का कॉन्टेंट डाउनलोड करने के लिए, डाउनलोड की जाने वाली फ़ाइल के आईडी के साथ files.download तरीके का इस्तेमाल करें. बदलाव का आईडी सेट किया जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.
Google Vids की फ़ाइलें डाउनलोड करने का यही तरीका है. Google Vids फ़ाइलों को एक्सपोर्ट करने की कोशिश करने पर, आपको fileNotExportable गड़बड़ी का मैसेज मिलता है.
ज़्यादा जानकारी के लिए, लंबे समय तक चलने वाले ऑपरेशन मैनेज करना लेख पढ़ें.
Google Workspace के दस्तावेज़ का कॉन्टेंट एक्सपोर्ट करना
Google Workspace दस्तावेज़ के बाइट कॉन्टेंट को एक्सपोर्ट करने के लिए, एक्सपोर्ट की जाने वाली फ़ाइल के आईडी और सही MIME टाइप के साथ files.export तरीके का इस्तेमाल करें. एक्सपोर्ट किए गए कॉन्टेंट का साइज़ 10 एमबी से ज़्यादा नहीं होना चाहिए.
यहां दिए गए कोड के उदाहरण में, Drive API क्लाइंट लाइब्रेरी का इस्तेमाल करके, Google Workspace दस्तावेज़ को PDF फ़ॉर्मैट में एक्सपोर्ट करने के लिए, files.export तरीके का इस्तेमाल करने का तरीका बताया गया है:
Apps Script
/**
* Exports a Google Workspace document.
* @param {string} fileId The ID of the file to export.
* @param {string} mimeType The MIME type to export to.
* @return {Blob} The exported content as a Blob.
*/
function exportPdf(fileId, mimeType) {
var url = 'https://www.googleapis.com/drive/v3/files/' + fileId + '/export?mimeType=' + encodeURIComponent(mimeType);
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
}
});
return response.getBlob();
}
Java
Python
Node.js
PHP
.NET
इस कोड सैंपल में, drive स्कोप का इस्तेमाल किया गया है. इससे उपयोगकर्ताओं को आपकी सभी Drive फ़ाइलों को देखने और मैनेज करने की अनुमति मिलती है. Drive के स्कोप के बारे में ज़्यादा जानने के लिए, Google Drive API के स्कोप चुनना लेख पढ़ें.
कोड के इस सैंपल में, एक्सपोर्ट किए गए MIME टाइप को application/pdf के तौर पर भी दिखाया गया है. Google Workspace के हर दस्तावेज़ के लिए, एक्सपोर्ट किए जा सकने वाले सभी MIME टाइप की पूरी सूची देखने के लिए, Google Workspace दस्तावेज़ों के लिए एक्सपोर्ट किए जा सकने वाले MIME टाइप लेख पढ़ें.
किसी ब्राउज़र में Google Workspace दस्तावेज़ का कॉन्टेंट एक्सपोर्ट करना
किसी ब्राउज़र में Google Workspace दस्तावेज़ के कॉन्टेंट को एक्सपोर्ट करने के लिए, files संसाधन के exportLinks फ़ील्ड का इस्तेमाल करें. दस्तावेज़ के टाइप के आधार पर, उपलब्ध हर MIME टाइप के लिए, फ़ाइल और उसके कॉन्टेंट को डाउनलोड करने का लिंक मिलता है.
उपयोगकर्ता को किसी यूआरएल पर रीडायरेक्ट किया जा सकता है या उसे क्लिक किए जा सकने वाले लिंक के तौर पर ऑफ़र किया जा सकता है.
किसी ब्राउज़र में, Google Workspace दस्तावेज़ के कॉन्टेंट को पुराने वर्शन में एक्सपोर्ट करना
किसी ब्राउज़र में Google Workspace दस्तावेज़ के कॉन्टेंट को पुराने वर्शन में एक्सपोर्ट करने के लिए, revisions.get तरीके का इस्तेमाल करें. इसके लिए, डाउनलोड की जाने वाली फ़ाइल का आईडी और एक्सपोर्ट लिंक जनरेट करने के लिए, बदलाव का आईडी इस्तेमाल करें. इस लिंक से, डाउनलोड किया जा सकता है. अगर उपयोगकर्ता के पास फ़ाइल डाउनलोड करने का ऐक्सेस है, तो फ़ाइल और उसके कॉन्टेंट को डाउनलोड करने का लिंक दिखाया जाता है. आपके पास उपयोगकर्ता को इस यूआरएल पर रीडायरेक्ट करने या इसे क्लिक किए जा सकने वाले लिंक के तौर पर उपलब्ध कराने का विकल्प होता है.
लंबे समय तक चलने वाली कार्रवाइयों के दौरान, Google Workspace दस्तावेज़ का कॉन्टेंट एक्सपोर्ट करना
लंबे समय तक चलने वाले ऑपरेशन के दौरान, Google Workspace दस्तावेज़ के कॉन्टेंट को एक्सपोर्ट करने के लिए, files.download तरीके का इस्तेमाल करें. साथ ही, डाउनलोड करने के लिए फ़ाइल के आईडी और वर्शन के आईडी का इस्तेमाल करें. ज़्यादा जानकारी के लिए, लंबे समय तक चलने वाले ऑपरेशन मैनेज करना लेख पढ़ें.