Google ไดรฟ์ API รองรับการดำเนินการดาวน์โหลดและส่งออกหลายประเภทตามที่แสดงในตารางต่อไปนี้
| การดำเนินการดาวน์โหลด |
|
||||
| การดำเนินการส่งออก |
|
ก่อนดาวน์โหลดหรือส่งออกเนื้อหาไฟล์ ให้ตรวจสอบว่าผู้ใช้สามารถดาวน์โหลดไฟล์ได้โดยใช้ฟิลด์ capabilities.canDownload ในแหล่งข้อมูล files
ดูคำอธิบายประเภทไฟล์ที่กล่าวถึงที่นี่ รวมถึงไฟล์ Blob และไฟล์ Google Workspace ได้ที่ประเภทไฟล์
ส่วนที่เหลือของเอกสารนี้จะอธิบายวิธีการโดยละเอียดในการดำเนินการดาวน์โหลดและส่งออกประเภทเหล่านี้
ดาวน์โหลดเนื้อหาไฟล์ Blob
หากต้องการดาวน์โหลดไฟล์ Blob ที่จัดเก็บไว้ในไดรฟ์ ให้ใช้วิธี files.get กับรหัสของไฟล์ที่จะดาวน์โหลดและพารามิเตอร์ URL ของ alt=media พารามิเตอร์ URL ของ alt=media จะบอกเซิร์ฟเวอร์ว่ามีการขอให้ดาวน์โหลดเนื้อหาเป็นรูปแบบการตอบกลับอื่น
alt=media พารามิเตอร์ของ URL เป็นพารามิเตอร์ของระบบที่ใช้ได้ใน REST API ของ Google ทั้งหมด หากใช้ไลบรารีของไคลเอ็นต์ Drive API คุณไม่จำเป็นต้องตั้งค่าพารามิเตอร์นี้อย่างชัดแจ้ง เนื่องจากเมธอดของไลบรารีของไคลเอ็นต์จะเพิ่มพารามิเตอร์ URL alt=media ลงในคำขอ HTTP พื้นฐาน
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้เมธอด 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: โทเค็นเพื่อการเข้าถึงที่ให้สิทธิ์เข้าถึง API
- FILE_NAME: ชื่อไฟล์เอาต์พุต
การดาวน์โหลดไฟล์ที่เริ่มต้นจากแอปของคุณต้องได้รับอนุญาตโดยมีขอบเขตที่อนุญาตสิทธิ์อ่านเนื้อหาของไฟล์ เช่น แอปที่ใช้ขอบเขต drive.readonly.metadata จะไม่ได้รับอนุญาตให้ดาวน์โหลดเนื้อหาของไฟล์
ตัวอย่างโค้ดของไลบรารีของไคลเอ็นต์ใช้ขอบเขตไฟล์ drive ที่จำกัดซึ่งอนุญาตให้
ผู้ใช้ดูและจัดการไฟล์ทั้งหมดในไดรฟ์ ดูข้อมูลเพิ่มเติม
เกี่ยวกับขอบเขตของไดรฟ์ได้ที่เลือกขอบเขต Google Drive API
ผู้ใช้ที่มีสิทธิ์ระดับ owner (สำหรับไฟล์ในไดรฟ์ของฉัน) หรือสิทธิ์ระดับ organizer (สำหรับไฟล์ในไดรฟ์ที่แชร์) สามารถจำกัดการดาวน์โหลดผ่านออบเจ็กต์ DownloadRestrictionsMetadata ได้ ดูข้อมูลเพิ่มเติมได้ที่หัวข้อป้องกันไม่ให้ผู้ใช้ดาวน์โหลด พิมพ์ หรือคัดลอกไฟล์
มีเพียงเจ้าของไฟล์เท่านั้นที่ดาวน์โหลดไฟล์ที่ระบุว่าละเมิด
(เช่น ซอฟต์แวร์ที่เป็นอันตราย) ได้
นอกจากนี้ ต้องระบุgetพารามิเตอร์การค้นหาacknowledgeAbuse=trueเพื่อระบุว่าผู้ใช้รับทราบความเสี่ยงในการดาวน์โหลดซอฟต์แวร์ไม่พึงประสงค์หรือไฟล์ที่เป็นการละเมิดอื่นๆ แอปพลิเคชันควรเตือนผู้ใช้แบบอินเทอร์แอกทีฟ
ก่อนที่จะใช้พารามิเตอร์การค้นหานี้
การดาวน์โหลดบางส่วน
การดาวน์โหลดบางส่วนคือการดาวน์โหลดเฉพาะส่วนที่ระบุของไฟล์ คุณ
ระบุส่วนของไฟล์ที่ต้องการดาวน์โหลดได้โดยใช้ช่วงไบต์กับส่วนหัว
Range เช่น
Range: bytes=500-999
ดาวน์โหลดเนื้อหาไฟล์ Blob ในเวอร์ชันก่อนหน้า
คุณจะดาวน์โหลดได้เฉพาะการแก้ไขเนื้อหาไฟล์ Blob ที่ทำเครื่องหมายว่า "เก็บตลอดไป" หากต้องการดาวน์โหลดเวอร์ชัน ให้ตั้งค่าเป็น "เก็บไว้ตลอดไป" ก่อน ดูข้อมูลเพิ่มเติมได้ที่ระบุการแก้ไขที่จะบันทึกจากการลบอัตโนมัติ
หากต้องการดาวน์โหลดเนื้อหาของไฟล์ Blob ในเวอร์ชันก่อนหน้า ให้ใช้วิธี revisions.get พร้อมรหัสของ
ไฟล์ที่จะดาวน์โหลด รหัสของการแก้ไข และพารามิเตอร์ URL alt=media พารามิเตอร์ของ URL
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: โทเค็นเพื่อการเข้าถึงที่ให้สิทธิ์เข้าถึง API
- FILE_NAME: ชื่อไฟล์เอาต์พุต
ดาวน์โหลดเนื้อหาไฟล์ Blob ในเบราว์เซอร์
หากต้องการดาวน์โหลดเนื้อหาของไฟล์ Blob ที่จัดเก็บไว้ในไดรฟ์ภายในเบราว์เซอร์แทนที่จะผ่าน API ให้ใช้ฟิลด์ webContentLink ของแหล่งข้อมูล files หากผู้ใช้มีสิทธิ์เข้าถึงเพื่อดาวน์โหลดไฟล์
ระบบจะแสดงลิงก์สำหรับดาวน์โหลดไฟล์และเนื้อหาของไฟล์ คุณจะ
เปลี่ยนเส้นทางผู้ใช้ไปยัง URL นี้ หรือเสนอเป็นลิงก์ที่คลิกได้ก็ได้
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: โทเค็นเพื่อการเข้าถึงที่ให้สิทธิ์เข้าถึง API
ดาวน์โหลดเนื้อหาไฟล์ Blob โดยใช้การดำเนินการที่ใช้เวลานาน
หากต้องการดาวน์โหลดเนื้อหาของไฟล์ Blob โดยใช้การดำเนินการที่ใช้เวลานาน (LRO) ให้ใช้เมธอด files.download กับรหัสของไฟล์ที่จะดาวน์โหลด คุณเลือกตั้งค่ารหัสของการแก้ไขได้
นี่เป็นวิธีเดียวในการดาวน์โหลดไฟล์ Google Vids หากพยายามส่งออกไฟล์
Google Vids คุณจะได้รับข้อผิดพลาด
fileNotExportable
ดูข้อมูลเพิ่มเติมได้ที่หัวข้อจัดการการดำเนินการที่ใช้เวลานาน
curl
คำสั่ง curl ต่อไปนี้จะเริ่มต้น LRO และแสดงผลการตอบกลับ JSON หากต้องการดาวน์โหลดไฟล์หรือสำรวจ LRO นี้ คุณต้องส่งคำขออีกรายการ โดยใช้รหัสที่ส่งคืนเพื่อรับ URL ของเนื้อหา จากนั้นคุณก็ส่งคำขอ curl สุดท้ายไปยัง URL นั้นเพื่อดาวน์โหลดไฟล์ได้ ดูข้อมูลเพิ่มเติมได้ที่หัวข้อจัดการการดำเนินการที่ใช้เวลานาน
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: โทเค็นเพื่อการเข้าถึงที่ให้สิทธิ์เข้าถึง API
ส่งออกเนื้อหาเอกสาร Google Workspace
หากต้องการส่งออกเนื้อหาไบต์ของเอกสาร Google Workspace ให้ใช้วิธี files.export พร้อมรหัสของไฟล์ที่จะส่งออกและ
ประเภท MIME ที่ถูกต้อง เนื้อหาที่ส่งออกจะมีขนาดไม่เกิน 10 MB
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้เมธอด files.export เพื่อส่งออกเอกสาร Google Workspace ในรูปแบบ PDF
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: โทเค็นเพื่อการเข้าถึงที่ให้สิทธิ์เข้าถึง API
- FILE_NAME: ชื่อไฟล์เอาต์พุต
ตัวอย่างโค้ดของไลบรารีของไคลเอ็นต์ใช้driveขอบเขตที่จำกัดซึ่งอนุญาตให้ผู้ใช้ดูและจัดการไฟล์ทั้งหมดในไดรฟ์ ดูข้อมูลเพิ่มเติม
เกี่ยวกับขอบเขตของไดรฟ์ได้ที่เลือกขอบเขต Google Drive API
ตัวอย่างโค้ดยังประกาศประเภท MIME ของการส่งออกเป็น application/pdf ด้วย ดูรายการประเภท MIME ของการส่งออกทั้งหมดที่รองรับสำหรับเอกสาร Google Workspace แต่ละรายการได้ที่ประเภท MIME ของการส่งออกสำหรับเอกสาร Google Workspace
ส่งออกเนื้อหาเอกสาร Google Workspace ในเบราว์เซอร์
หากต้องการส่งออกเนื้อหาเอกสาร Google Workspace ภายในเบราว์เซอร์ ให้ใช้ฟิลด์
exportLinks ของแหล่งข้อมูล
files ระบบจะแสดง
ลิงก์สำหรับดาวน์โหลดไฟล์และเนื้อหาของไฟล์สำหรับทุกประเภท MIME
ที่ใช้ได้ ทั้งนี้ขึ้นอยู่กับประเภทเอกสาร คุณจะเปลี่ยนเส้นทางผู้ใช้ไปยัง URL หรือเสนอเป็นลิงก์ที่คลิกได้ก็ได้
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: โทเค็นเพื่อการเข้าถึงที่ให้สิทธิ์เข้าถึง API
ส่งออกเนื้อหาเอกสาร Google Workspace ในเบราว์เซอร์เวอร์ชันก่อนหน้า
หากต้องการส่งออกเนื้อหาเอกสาร Google Workspace ในเวอร์ชันก่อนหน้าภายในเบราว์เซอร์ ให้ใช้วิธี revisions.get โดยใช้รหัสของไฟล์ที่จะดาวน์โหลดและรหัสของการแก้ไขเพื่อสร้างลิงก์ส่งออกซึ่งคุณสามารถใช้ดาวน์โหลดได้ หากผู้ใช้มีสิทธิ์เข้าถึงเพื่อดาวน์โหลดไฟล์ ระบบจะแสดงลิงก์สำหรับดาวน์โหลดไฟล์และเนื้อหาของไฟล์ คุณจะ
เปลี่ยนเส้นทางผู้ใช้ไปยัง URL นี้ หรือเสนอเป็นลิงก์ที่คลิกได้ก็ได้
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: โทเค็นเพื่อการเข้าถึงที่ให้สิทธิ์เข้าถึง API
ส่งออกเนื้อหาเอกสาร Google Workspace โดยใช้การดำเนินการที่ใช้เวลานาน
หากต้องการส่งออกเนื้อหาเอกสาร Google Workspace โดยใช้การดำเนินการที่ใช้เวลานาน (LRO) ให้ใช้วิธี files.download กับ
รหัสของไฟล์ที่จะดาวน์โหลดและรหัสของการแก้ไข ดูข้อมูลเพิ่มเติมได้ที่จัดการการดำเนินการที่ใช้เวลานาน
curl
คำสั่ง curl ต่อไปนี้จะเริ่มต้น LRO และแสดงผลการตอบกลับ JSON หากต้องการดาวน์โหลดไฟล์หรือสำรวจ LRO นี้ คุณต้องส่งคำขออีกรายการ โดยใช้รหัสที่ส่งคืนเพื่อรับ URL ของเนื้อหา จากนั้นคุณก็ส่งคำขอ curl สุดท้ายไปยัง URL นั้นเพื่อดาวน์โหลดไฟล์ได้ ดูข้อมูลเพิ่มเติมได้ที่หัวข้อจัดการการดำเนินการที่ใช้เวลานาน
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: โทเค็นเพื่อการเข้าถึงที่ให้สิทธิ์เข้าถึง API