Google Drive API 支持多种类型的下载和导出操作,如下表所示:
下载 |
|
|||
导出内容 |
|
本指南的其余部分提供了有关执行这些类型的下载和导出操作的详细说明。
下载 blob 文件内容
如需下载存储在云端硬盘中的 blob 文件,请使用 files.get
方法和要下载的文件 ID 以及 alt=media
网址参数。alt=media
网址参数会告知服务器正在请求以下载内容作为替代响应格式。
alt=media
网址参数是一项系统参数,适用于所有 Google REST API。如果您使用 Drive API 的客户端库,则无需明确设置此参数。
以下代码示例展示了如何使用 files.get
方法通过 Drive API 客户端库下载文件。
Java
Python
Node.js
PHP
.NET
此代码示例使用库方法,将 alt=media
网址参数添加到底层 HTTP 请求。
从您的应用启动的文件下载操作必须获得授权,并允许读取文件内容。例如,使用 drive.readonly.metadata
范围的应用无权下载文件内容。此代码示例使用受限的“云端硬盘”文件范围,让用户可以查看和管理您的所有云端硬盘文件。如需详细了解云端硬盘范围,请参阅 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。如果用户拥有对文件的下载权限,则系统会返回一个下载该文件及其内容的链接。您可以将用户重定向到此网址,也可以将其作为可点击的链接提供。