Google Drive API, डाउनलोड और एक्सपोर्ट करने से जुड़ी कई कार्रवाइयों के साथ काम करता है. इनके बारे में यहां दी गई टेबल में बताया गया है:
| डाउनलोड करने से जुड़ी कार्रवाइयां |
|
||||
| कार्रवाइयां एक्सपोर्ट करना |
|
फ़ाइल का कॉन्टेंट डाउनलोड या एक्सपोर्ट करने से पहले, पुष्टि करें कि उपयोगकर्ता files संसाधन पर मौजूद capabilities.canDownload फ़ील्ड का इस्तेमाल करके फ़ाइल डाउनलोड कर सकते हैं.
यहां बताए गए फ़ाइल टाइप के बारे में जानने के लिए, फ़ाइल टाइप लेख पढ़ें. इसमें blob और Google Workspace फ़ाइलें शामिल हैं.
इस दस्तावेज़ में आगे, डाउनलोड और एक्सपोर्ट करने से जुड़ी इन कार्रवाइयों को पूरा करने के बारे में ज़्यादा जानकारी दी गई है.
ब्लॉब फ़ाइल का कॉन्टेंट डाउनलोड करें
Drive पर सेव की गई किसी blob फ़ाइल को डाउनलोड करने के लिए, files.get तरीके का इस्तेमाल करें. इसके लिए, डाउनलोड की जाने वाली फ़ाइल का आईडी और alt system
parameter का इस्तेमाल करें.
alt=media पैरामीटर, सर्वर को बताता है कि कॉन्टेंट को डाउनलोड करने का अनुरोध, जवाब के वैकल्पिक फ़ॉर्मैट के तौर पर किया जा रहा है.
alt सिस्टम पैरामीटर, Google के सभी REST API में उपलब्ध होता है. अगर Drive API क्लाइंट लाइब्रेरी का इस्तेमाल किया जाता है, तो आपको इस पैरामीटर को साफ़ तौर पर सेट करने की ज़रूरत नहीं है. ऐसा इसलिए, क्योंकि क्लाइंट लाइब्रेरी का तरीका, alt=media पैरामीटर को बुनियादी एचटीटीपी अनुरोध में जोड़ता है.
यहां दिए गए कोड सैंपल में, किसी फ़ाइल को डाउनलोड करने के लिए 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
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID?alt=media" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME"
इनकी जगह ये डालें:
- FILE_ID: डाउनलोड की जाने वाली फ़ाइल का आईडी.
- ACCESS_TOKEN: यह ऐक्सेस टोकन है, जो एपीआई का ऐक्सेस देता है.
- FILE_NAME: आउटपुट फ़ाइल का नाम.
आपके ऐप्लिकेशन से शुरू किए गए फ़ाइल डाउनलोड को ऐसे स्कोप के साथ अनुमति दी जानी चाहिए जो फ़ाइल के कॉन्टेंट को पढ़ने की अनुमति देता हो. उदाहरण के लिए, drive.readonly.metadata स्कोप का इस्तेमाल करने वाले ऐप्लिकेशन को फ़ाइल का कॉन्टेंट डाउनलोड करने की अनुमति नहीं है.
क्लाइंट लाइब्रेरी के कोड सैंपल, drive फ़ाइल के सीमित स्कोप का इस्तेमाल करते हैं. इससे उपयोगकर्ता, आपकी सभी Drive फ़ाइलों को देख और मैनेज कर सकते हैं. Drive के स्कोप के बारे में ज़्यादा जानने के लिए, Google Drive API के स्कोप चुनना लेख पढ़ें.
owner अनुमतियों (मेरी ड्राइव में मौजूद फ़ाइलों के लिए) या organizer अनुमतियों (शेयर की गई ड्राइव में मौजूद फ़ाइलों के लिए) वाले उपयोगकर्ता, DownloadRestrictionsMetadata ऑब्जेक्ट के ज़रिए डाउनलोड करने पर पाबंदी लगा सकते हैं. ज़्यादा जानकारी के लिए, लोगों को, आपकी फ़ाइल डाउनलोड करने, प्रिंट करने या उसे कॉपी करने से रोकना लेख पढ़ें.
गलत इस्तेमाल के तौर पर पहचानी गई फ़ाइलें (जैसे कि नुकसान पहुंचाने वाला सॉफ़्टवेयर) सिर्फ़ फ़ाइल का मालिक डाउनलोड कर सकता है.
इसके अलावा, acknowledgeAbuse क्वेरी पैरामीटर को true पर सेट करना ज़रूरी है, ताकि यह पता चल सके कि उपयोगकर्ता ने संभावित रूप से अनचाहे सॉफ़्टवेयर या अन्य नुकसान पहुंचाने वाली फ़ाइलों को डाउनलोड करने के जोखिम को स्वीकार कर लिया है. आपका ऐप्लिकेशन, इस क्वेरी पैरामीटर का इस्तेमाल करने से पहले, उपयोगकर्ता को इंटरैक्टिव तरीके से चेतावनी दे.
कुछ हिस्सा डाउनलोड करना
कुछ हिस्से को डाउनलोड करने का मतलब है कि किसी फ़ाइल का सिर्फ़ वह हिस्सा डाउनलोड किया गया है जिसे आपने चुना है. Range हेडर के साथ बाइट रेंज का इस्तेमाल करके, फ़ाइल का वह हिस्सा तय किया जा सकता है जिसे आपको डाउनलोड करना है. उदाहरण के लिए:
Range: bytes=500-999
किसी पुराने वर्शन में मौजूद, blob फ़ाइल का कॉन्टेंट डाउनलोड करना
ब्लॉब फ़ाइलों के कॉन्टेंट को पुराने वर्शन में डाउनलोड करने के लिए, revisions.get तरीके का इस्तेमाल करें. इसके लिए, आपको डाउनलोड की जाने वाली फ़ाइल का आईडी, बदलाव का आईडी, और alt सिस्टम पैरामीटर देना होगा.
alt=media पैरामीटर, सर्वर को बताता है कि कॉन्टेंट को डाउनलोड करने का अनुरोध, जवाब के वैकल्पिक फ़ॉर्मैट के तौर पर किया जा रहा है. files.get की तरह, revisions.get वाला तरीका भी acknowledgeAbuse क्वेरी पैरामीटर और Range हेडर को स्वीकार करता है.
सिर्फ़ उन कॉन्टेंट वर्शन को डाउनलोड किया जा सकता है जिन्हें "हमेशा के लिए रखें" के तौर पर मार्क किया गया है. अगर आपको किसी बदलाव को डाउनलोड करना है, तो पहले उसे "हमेशा बनाए रखें" पर सेट करें. ज़्यादा जानकारी के लिए, अपने-आप मिटने की सुविधा से सेव करने के लिए, वर्शन तय करना लेख पढ़ें.
बदलाव डाउनलोड करने के बारे में ज़्यादा जानकारी के लिए, लंबे समय तक चलने वाले ऑपरेशन मैनेज करना लेख पढ़ें.
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID/revisions/REVISION_ID?alt=media" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME"
इनकी जगह ये डालें:
- FILE_ID: डाउनलोड की जाने वाली फ़ाइल का आईडी.
- REVISION_ID: डाउनलोड किए जाने वाले बदलाव का आईडी.
- ACCESS_TOKEN: यह ऐक्सेस टोकन है, जो एपीआई का ऐक्सेस देता है.
- FILE_NAME: आउटपुट फ़ाइल का नाम.
ब्राउज़र में, blob फ़ाइल का कॉन्टेंट डाउनलोड करना
अगर आपको एपीआई के बजाय ब्राउज़र में Drive पर सेव की गई बड़ी फ़ाइलों का कॉन्टेंट डाउनलोड करना है, तो files रिसॉर्स के webContentLink फ़ील्ड का इस्तेमाल करें. अगर उपयोगकर्ता के पास फ़ाइल डाउनलोड करने का ऐक्सेस है, तो उसे फ़ाइल और उसके कॉन्टेंट को डाउनलोड करने का लिंक मिलता है. आपके पास उपयोगकर्ता को इस यूआरएल पर रीडायरेक्ट करने या इसे क्लिक किए जा सकने वाले लिंक के तौर पर उपलब्ध कराने का विकल्प होता है.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=webContentLink" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
इनकी जगह ये डालें:
- FILE_ID: वह फ़ाइल आईडी जिसके लिए डाउनलोड लिंक पाना है.
- ACCESS_TOKEN: यह ऐक्सेस टोकन है, जो एपीआई का ऐक्सेस देता है.
लंबे समय तक चलने वाली कार्रवाइयों का इस्तेमाल करके, बड़ी बाइनरी फ़ाइल का कॉन्टेंट डाउनलोड करना
लंबे समय तक चलने वाले ऑपरेशन (एलआरओ) का इस्तेमाल करके, blob फ़ाइलों का कॉन्टेंट डाउनलोड करने के लिए, डाउनलोड की जाने वाली फ़ाइल के आईडी के साथ files.download तरीके का इस्तेमाल करें. बदलाव का आईडी सेट किया जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.
Google Vids की फ़ाइलें डाउनलोड करने का यही तरीका है. Google Vids फ़ाइलों को एक्सपोर्ट करने की कोशिश करने पर, आपको fileNotExportable गड़बड़ी का मैसेज मिलता है.
ज़्यादा जानकारी के लिए, लंबे समय तक चलने वाले ऑपरेशन मैनेज करना लेख पढ़ें.
curl
नीचे दी गई कर्ल कमांड, एलआरओ शुरू करती है और JSON रिस्पॉन्स दिखाती है. फ़ाइल डाउनलोड करने या इस एलआरओ को पोल करने के लिए, आपको कॉन्टेंट का यूआरएल पाने के लिए, मिले हुए आईडी का इस्तेमाल करके दूसरा अनुरोध करना होगा. इसके बाद, फ़ाइल डाउनलोड करने के लिए, उस यूआरएल पर फ़ाइनल कर्ल अनुरोध किया जा सकता है. ज़्यादा जानकारी के लिए, लंबे समय तक चलने वाले ऑपरेशन मैनेज करना लेख पढ़ें.
curl --request POST "https://www.googleapis.com/drive/v3/files/FILE_ID/download?mimeType=video/mp4" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Content-Length: 0" \
--header "Accept: application/json"
इनकी जगह ये डालें:
- FILE_ID: डाउनलोड की जाने वाली फ़ाइल का आईडी.
- ACCESS_TOKEN: यह ऐक्सेस टोकन है, जो एपीआई का ऐक्सेस देता है.
Google Workspace के दस्तावेज़ का कॉन्टेंट एक्सपोर्ट करना
Google Workspace दस्तावेज़ के बाइट कॉन्टेंट को एक्सपोर्ट करने के लिए, एक्सपोर्ट की जाने वाली फ़ाइल के आईडी और सही MIME टाइप के साथ files.export तरीके का इस्तेमाल करें. एक्सपोर्ट किए गए कॉन्टेंट का साइज़ 10 एमबी से ज़्यादा नहीं होना चाहिए.
यहां दिए गए कोड सैंपल में, 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
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID/export?mimeType=application/pdf" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME.pdf"
इनकी जगह ये डालें:
- FILE_ID: डाउनलोड की जाने वाली फ़ाइल का आईडी.
- ACCESS_TOKEN: यह ऐक्सेस टोकन है, जो एपीआई का ऐक्सेस देता है.
- FILE_NAME: आउटपुट फ़ाइल का नाम.
क्लाइंट लाइब्रेरी के कोड सैंपल, drive स्कोप का इस्तेमाल करते हैं. इससे उपयोगकर्ता, आपकी सभी Drive फ़ाइलों को देख और मैनेज कर सकते हैं. Drive के स्कोप के बारे में ज़्यादा जानने के लिए, Google Drive API के स्कोप चुनना लेख पढ़ें.
कोड के सैंपल में, एक्सपोर्ट किए गए MIME टाइप को application/pdf के तौर पर भी दिखाया गया है. Google Workspace के हर दस्तावेज़ के लिए, एक्सपोर्ट किए जा सकने वाले सभी MIME टाइप की पूरी सूची देखने के लिए, Google Workspace दस्तावेज़ों के लिए एक्सपोर्ट किए जा सकने वाले MIME टाइप लेख पढ़ें.
किसी ब्राउज़र में Google Workspace दस्तावेज़ का कॉन्टेंट एक्सपोर्ट करना
किसी ब्राउज़र में Google Workspace दस्तावेज़ के कॉन्टेंट को एक्सपोर्ट करने के लिए, files संसाधन के exportLinks फ़ील्ड का इस्तेमाल करें. दस्तावेज़ के टाइप के हिसाब से, डाउनलोड करने के लिए फ़ाइल और उसके कॉन्टेंट का लिंक दिया जाता है. यह लिंक, उपलब्ध हर MIME टाइप के लिए दिया जाता है. उपयोगकर्ता को किसी यूआरएल पर रीडायरेक्ट किया जा सकता है या उसे क्लिक किए जा सकने वाले लिंक के तौर पर ऑफ़र किया जा सकता है.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=id,name,exportLinks" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
इनकी जगह ये डालें:
- FILE_ID: वह फ़ाइल आईडी जिसके लिए डाउनलोड लिंक पाना है.
- ACCESS_TOKEN: यह ऐक्सेस टोकन है, जो एपीआई का ऐक्सेस देता है.
किसी ब्राउज़र में, Google Workspace दस्तावेज़ के कॉन्टेंट को पुराने वर्शन में एक्सपोर्ट करना
किसी ब्राउज़र में Google Workspace दस्तावेज़ के कॉन्टेंट को पुराने वर्शन में एक्सपोर्ट करने के लिए, revisions.get तरीके का इस्तेमाल करें. इसके लिए, डाउनलोड की जाने वाली फ़ाइल का आईडी और एक्सपोर्ट लिंक जनरेट करने के लिए, बदलाव का आईडी इस्तेमाल करें. इस लिंक से, कॉन्टेंट को डाउनलोड किया जा सकता है. अगर उपयोगकर्ता के पास फ़ाइल डाउनलोड करने का ऐक्सेस है, तो फ़ाइल और उसके कॉन्टेंट को डाउनलोड करने का लिंक दिखाया जाता है. आपके पास उपयोगकर्ता को इस यूआरएल पर रीडायरेक्ट करने या इसे क्लिक किए जा सकने वाले लिंक के तौर पर उपलब्ध कराने का विकल्प होता है.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID/revisions/REVISION_ID?fields=id,name,exportLinks" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
इनकी जगह ये डालें:
- FILE_ID: डाउनलोड की जाने वाली फ़ाइल का आईडी.
- REVISION_ID: डाउनलोड किए जाने वाले बदलाव का आईडी.
- ACCESS_TOKEN: यह ऐक्सेस टोकन है, जो एपीआई का ऐक्सेस देता है.
लंबे समय तक चलने वाली कार्रवाइयों का इस्तेमाल करके, Google Workspace दस्तावेज़ के कॉन्टेंट को एक्सपोर्ट करना
लंबे समय तक चलने वाली कार्रवाइयों (एलआरओ) का इस्तेमाल करके, Google Workspace दस्तावेज़ का कॉन्टेंट एक्सपोर्ट करने के लिए, files.download तरीके का इस्तेमाल करें. इसके लिए, डाउनलोड की जाने वाली फ़ाइल का आईडी और संशोधन का आईडी इस्तेमाल करें. ज़्यादा जानकारी के लिए, लंबे समय तक चलने वाले ऑपरेशन मैनेज करना लेख पढ़ें.
curl
नीचे दी गई curl कमांड, LRO शुरू करती है और JSON रिस्पॉन्स दिखाती है. फ़ाइल डाउनलोड करने या इस एलआरओ को पोल करने के लिए, आपको कॉन्टेंट का यूआरएल पाने के लिए, मिले हुए आईडी का इस्तेमाल करके दूसरा अनुरोध करना होगा. इसके बाद, फ़ाइल डाउनलोड करने के लिए, उस यूआरएल पर फ़ाइनल कर्ल अनुरोध किया जा सकता है. ज़्यादा जानकारी के लिए, लंबे समय तक चलने वाले ऑपरेशन मैनेज करना लेख पढ़ें.
curl --request POST "https://www.googleapis.com/drive/v3/files/FILE_ID/download?mimeType=MIME_TYPE&revisionId=REVISION_ID" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Content-Length: 0" \
--header "Accept: application/json"
इनकी जगह ये डालें:
- FILE_ID: डाउनलोड की जाने वाली फ़ाइल का आईडी.
- MIME_TYPE: एक्सपोर्ट करने के लिए MIME टाइप.
- REVISION_ID: डाउनलोड किए जाने वाले बदलाव का आईडी.
- ACCESS_TOKEN: यह ऐक्सेस टोकन है, जो एपीआई का ऐक्सेस देता है.