Google Drive API 支持多种类型的下载和导出操作,如下表所列:
下载 |
|
|||
导出 |
|
本指南的其余部分提供了有关如何执行这些类型的下载和导出操作的详细说明。
下载 blob 文件内容
如需下载存储在云端硬盘中的 blob 文件,请使用 files.get
方法以及要下载的文件 ID 和 alt=media
网址参数。alt=media
网址参数会告知服务器,请求下载的内容作为备用响应格式。
alt=media
网址参数是适用于所有 Google REST API 的系统参数。如果您使用适用于 Drive API 的客户端库,则无需明确设置此参数。
以下代码示例展示了如何使用 files.get
方法下载文件。
Java
Python
Node.js
PHP
.NET
此代码示例使用库方法,将 alt=media
网址参数添加到底层 HTTP 请求。
从您的应用开始的文件下载操作必须获得允许读取文件内容的作用域授权。例如,使用 drive.readonly.metadata
范围的应用无权下载文件内容。此代码示例使用受限的“drive”文件范围,允许用户查看和管理所有云端硬盘文件。如需详细了解云端硬盘范围,请参阅 API 专属授权和身份验证信息。
拥有修改权限的用户可以通过将 copyRequiresWriterPermission
字段设置为 false
,限制只读用户进行下载。
只有文件所有者可以下载被认定为存在滥用行为的文件(例如有害软件)。此外,还必须包含 get
查询参数 acknowledgeAbuse=true
,以表明用户已确认下载潜在的垃圾软件或其他滥用文件的风险。您的应用应在使用此查询参数之前以交互方式警告用户。
部分下载
部分下载涉及仅下载文件的指定部分。您可以使用 Range
标头的字节范围来指定要下载的文件部分。例如:
Range: bytes=500-999
下载较早版本的 blob 文件内容
如需下载早期版本的 blob 文件的内容,请使用 revisions.get
方法,并提供要下载文件的 ID、修订版本的 ID 和 alt=media
网址参数。alt=media
网址参数会告知服务器,请求下载的内容作为备用响应格式。与 files.get
类似,revisions.get
方法也接受可选的查询参数 acknowledgeAbuse
和 Range
标头。如需详细了解如何下载修订版本,请参阅下载和发布文件修订版本。
在浏览器中下载 blob 文件内容
如需在浏览器中存储存储在云端硬盘中的 blob 文件的内容,而不是通过 API 下载,请使用 Files
资源的 webContentLink
字段。如果用户拥有对文件的下载权限,则系统会返回用于下载该文件及其内容的链接。您可以将用户重定向到此网址,也可以将其作为可点击链接提供。
导出 Google Workspace 文档内容
如需导出 Google Workspace 文档字节内容,请使用 files.export
方法以及要导出的文件的 ID 和正确的 MIME 类型。导出的内容不超过 10 MB。
以下代码示例展示了如何使用 files.export
方法通过 Drive API 客户端库导出 PDF 格式的 Google Workspace 文档:
Java
Python
Node.js
PHP
.NET
本代码示例使用受限 drive
范围,允许用户查看和管理所有云端硬盘文件。如需详细了解云端硬盘范围,请参阅 API 专属授权和身份验证信息。
该代码示例还会将导出 MIME 类型声明为 application/pdf
。如需查看每个 Google Workspace 文档支持的所有导出 MIME 类型的完整列表,请参阅导出 Google Workspace 文档的 MIME 类型。
在浏览器中导出 Google Workspace 文档内容
如需在浏览器中导出 Google Workspace 文档内容,请使用 Files
资源的 exportLinks
字段。系统会针对可用的每个 MIME 类型返回文件下载及其内容的链接,具体取决于文档类型。您可以将用户重定向到网址,或将其作为可点击的链接提供。
在浏览器中将旧版 Google Workspace 文档内容导出
如需在浏览器中导出早期版本的 Google Workspace 文档内容,请使用 revisions.get
方法,并提供要下载文件的文件 ID 和修订版本 ID。如果用户拥有对文件的下载权限,则系统会返回用于下载该文件及其内容的链接。您可以将用户重定向到此网址,也可以将其作为可点击链接提供。