---
title: Google Drive
description: 创建、上传和列出文件
---

import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard 
  type="google_drive"
  color="#E0E0E0"
/>

{/* MANUAL-CONTENT-START:intro */}
[Google Drive](https://drive.google.com) 是 Google 的云存储和文件同步服务，允许用户存储文件、在设备之间同步文件，并与他人共享文件。作为 Google 生产力生态系统的核心组件，Google Drive 提供了强大的存储、组织和协作功能。

了解如何在 Sim 中集成 Google Drive 工具，通过工作流轻松从您的 Drive 中提取信息。本教程将指导您连接 Google Drive、设置数据检索以及使用存储的文档和文件来增强自动化功能。非常适合实时与您的代理同步重要数据。

<iframe
  width="100%"
  height="400"
  src="https://www.youtube.com/embed/cRoRr4b-EAs"
  title="在 Sim 中使用 Google Drive 工具"
  frameBorder="0"
  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
  allowFullScreen
></iframe>

使用 Google Drive，您可以：

- **在云端存储文件**：上传文件并通过互联网随时随地访问
- **组织内容**：创建文件夹、使用颜色编码并实施命名约定
- **共享与协作**：控制访问权限并同时处理文件
- **高效搜索**：利用 Google 强大的搜索技术快速找到文件
- **跨设备访问**：在桌面、移动设备和网页平台上使用 Google Drive
- **与其他服务集成**：连接 Google Docs、Sheets、Slides 和第三方应用程序

在 Sim 中，Google Drive 集成使您的代理可以以编程方式直接与云存储交互。这支持强大的自动化场景，例如文件管理、内容组织和文档工作流。您的代理可以将新文件上传到特定文件夹，下载现有文件以处理其内容，并列出文件夹内容以导航存储结构。此集成弥合了 AI 工作流与文档管理系统之间的差距，实现了无人工干预的无缝文件操作。通过将 Sim 与 Google Drive 连接，您可以自动化基于文件的工作流、智能管理文档，并将云存储操作集成到代理的功能中。
{/* MANUAL-CONTENT-END */}

## 使用说明

将 Google Drive 集成到工作流程中。可以创建、上传和列出文件。需要 OAuth。

## 工具

### `google_drive_upload`

上传文件到 Google Drive

#### 输入

| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `fileName` | string | 是 | 要上传文件的名称 |
| `file` | file | 否 | 要上传的二进制文件 \(UserFile 对象\) |
| `content` | string | 否 | 要上传的文本内容 \(使用此项或 file，不可同时使用\) |
| `mimeType` | string | 否 | 要上传文件的 MIME 类型 \(如果未提供，将从文件中自动检测\) |
| `folderSelector` | string | 否 | 选择要上传文件的文件夹 |
| `folderId` | string | 否 | 要上传文件的文件夹 ID \(内部使用\) |

#### 输出

| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `file` | json | 上传文件的元数据，包括 ID、名称和链接 |

### `google_drive_create_folder`

在 Google Drive 中创建一个新文件夹

#### 输入

| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `fileName` | string | 是 | 要创建的文件夹名称 |
| `folderSelector` | string | 否 | 选择要在其中创建文件夹的父文件夹 |
| `folderId` | string | 否 | 父文件夹的 ID（内部使用） |

#### 输出

| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `file` | json | 创建的文件夹元数据，包括 ID、名称和父文件夹信息 |

### `google_drive_download`

从 Google Drive 下载文件（自动导出 Google Workspace 文件）

#### 输入

| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | 是 | 要下载的文件 ID |
| `mimeType` | string | 否 | 导出 Google Workspace 文件的 MIME 类型（可选） |
| `fileName` | string | 否 | 可选的文件名覆盖 |

#### 输出

| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `file` | file | 下载的文件存储在执行文件中 |

### `google_drive_list`

列出 Google Drive 中的文件和文件夹

#### 输入

| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `folderSelector` | string | 否 | 选择要列出文件的文件夹 |
| `folderId` | string | 否 | 要列出文件的文件夹 ID（内部使用） |
| `query` | string | 否 | 用于按名称过滤文件的搜索词（例如，"budget" 会找到名称中包含 "budget" 的文件）。不要在此处使用 Google Drive 查询语法 - 只需提供一个普通的搜索词即可。 |
| `pageSize` | number | 否 | 要返回的最大文件数（默认值：100） |
| `pageToken` | string | 否 | 用于分页的页面令牌 |

#### 输出

| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `files` | json | 指定文件夹中文件元数据对象的数组 |

## 注意事项

- 类别：`tools`
- 类型：`google_drive`

#### 输出

| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `file` | file | 下载的文件，存储于执行文件中 |
| `metadata` | object | 来自 Google Drive 的完整文件元数据 |
|   ↳ `id` | string | Google Drive 文件 ID |
|   ↳ `kind` | string | 资源类型标识符 |
|   ↳ `name` | string | 文件名 |
|   ↳ `mimeType` | string | MIME 类型 |
|   ↳ `description` | string | 文件描述 |
|   ↳ `originalFilename` | string | 原始上传文件名 |
|   ↳ `fullFileExtension` | string | 完整文件扩展名 |
|   ↳ `fileExtension` | string | 文件扩展名 |
|   ↳ `owners` | json | 文件所有者列表 |
|   ↳ `permissions` | json | 文件权限 |
|   ↳ `permissionIds` | json | 权限 ID |
|   ↳ `shared` | boolean | 文件是否已共享 |
|   ↳ `ownedByMe` | boolean | 是否为当前用户所有 |
|   ↳ `writersCanShare` | boolean | 作者是否可分享 |
|   ↳ `viewersCanCopyContent` | boolean | 查看者是否可复制 |
|   ↳ `copyRequiresWriterPermission` | boolean | 复制是否需要作者权限 |
|   ↳ `sharingUser` | json | 共享该文件的用户 |
|   ↳ `starred` | boolean | 文件是否加星标 |
|   ↳ `trashed` | boolean | 文件是否在回收站中 |
|   ↳ `explicitlyTrashed` | boolean | 是否被明确移至回收站 |
|   ↳ `appProperties` | json | 应用专属属性 |
|   ↳ `createdTime` | string | 文件创建时间 |
|   ↳ `modifiedTime` | string | 最后修改时间 |
|   ↳ `modifiedByMeTime` | string | 当前用户修改时间 |
|   ↳ `viewedByMeTime` | string | 当前用户最后查看时间 |
|   ↳ `sharedWithMeTime` | string | 与当前用户共享时间 |
|   ↳ `lastModifyingUser` | json | 最后修改该文件的用户 |
|   ↳ `viewedByMe` | boolean | 当前用户是否已查看 |
|   ↳ `modifiedByMe` | boolean | 当前用户是否已修改 |
|   ↳ `webViewLink` | string | 浏览器查看链接 |
|   ↳ `webContentLink` | string | 直接下载链接 |
|   ↳ `iconLink` | string | 文件图标链接 |
|   ↳ `thumbnailLink` | string | 缩略图链接 |
|   ↳ `exportLinks` | json | 导出格式链接 |
|   ↳ `size` | string | 文件字节大小 |
|   ↳ `quotaBytesUsed` | string | 已用存储配额 |
|   ↳ `md5Checksum` | string | MD5 哈希值 |
|   ↳ `sha1Checksum` | string | SHA-1 哈希值 |
|   ↳ `sha256Checksum` | string | SHA-256 哈希值 |
|   ↳ `parents` | json | 父文件夹 ID |
|   ↳ `spaces` | json | 文件所在空间 |
|   ↳ `driveId` | string | 共享云端硬盘 ID |
|   ↳ `capabilities` | json | 文件的用户权限 |
|   ↳ `version` | string | 版本号 |
|   ↳ `headRevisionId` | string | 主修订版 ID |
|   ↳ `hasThumbnail` | boolean | 是否有缩略图 |
|   ↳ `thumbnailVersion` | string | 缩略图版本 |
|   ↳ `imageMediaMetadata` | json | 图片专属元数据 |
|   ↳ `videoMediaMetadata` | json | 视频专属元数据 |
|   ↳ `isAppAuthorized` | boolean | 是否由请求的应用创建 |
|   ↳ `contentRestrictions` | json | 内容限制 |
|   ↳ `linkShareMetadata` | json | 链接分享元数据 |
|   ↳ `revisions` | json | 文件修订历史（仅前 100 个修订） |

### `google_drive_copy`

在 Google Drive 中创建文件副本

#### 输入

| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | ---- | ----------- |
| `fileId` | string | 是 | 要复制的文件 ID |
| `newName` | string | 否 | 副本的文件名（默认为“Copy of [原文件名]”） |
| `destinationFolderId` | string | 否 | 放置副本的文件夹 ID（默认为与原文件相同的位置） |

#### 输出

| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `file` | json | 副本文件的元数据 |
|   ↳ `id` | string | 副本的 Google Drive 文件 ID |
|   ↳ `kind` | string | 资源类型标识符 |
|   ↳ `name` | string | 文件名 |
|   ↳ `mimeType` | string | MIME 类型 |
|   ↳ `webViewLink` | string | 浏览器查看链接 |
|   ↳ `parents` | json | 父文件夹 ID |
|   ↳ `createdTime` | string | 文件创建时间 |
|   ↳ `modifiedTime` | string | 最后修改时间 |
|   ↳ `owners` | json | 文件所有者列表 |
|   ↳ `size` | string | 文件大小（字节） |

### `google_drive_update`

在 Google Drive 中更新文件元数据（重命名、移动、加星、添加描述）

#### 输入

| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | ---- | ----------- |
| `fileId` | string | 是 | 要更新的文件 ID |
| `name` | string | 否 | 新文件名 |
| `description` | string | 否 | 新的文件描述 |
| `addParents` | string | 否 | 要添加的父文件夹 ID（用逗号分隔，移动文件到这些文件夹） |
| `removeParents` | string | 否 | 要移除的父文件夹 ID（用逗号分隔） |
| `starred` | boolean | 否 | 是否加星或取消加星 |

#### 输出

| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `file` | json | 已更新的文件元数据 |
|   ↳ `id` | string | Google Drive 文件 ID |
|   ↳ `kind` | string | 资源类型标识符 |
|   ↳ `name` | string | 文件名 |
|   ↳ `mimeType` | string | MIME 类型 |
|   ↳ `description` | string | 文件描述 |
|   ↳ `starred` | boolean | 文件是否加星标 |
|   ↳ `webViewLink` | string | 浏览器查看链接 |
|   ↳ `parents` | json | 父文件夹 ID |
|   ↳ `modifiedTime` | string | 最后修改时间 |

### `google_drive_trash`

将文件移至 Google Drive 回收站（可恢复）

#### 输入

| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | 是 | 要移至回收站的文件 ID |

#### 输出

| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `file` | json | 已移至回收站的文件元数据 |
|   ↳ `id` | string | Google Drive 文件 ID |
|   ↳ `kind` | string | 资源类型标识符 |
|   ↳ `name` | string | 文件名 |
|   ↳ `mimeType` | string | MIME 类型 |
|   ↳ `trashed` | boolean | 文件是否在回收站（应为 true） |
|   ↳ `trashedTime` | string | 文件被移至回收站的时间 |
|   ↳ `webViewLink` | string | 浏览器查看链接 |

### `google_drive_delete`

从 Google Drive 永久删除文件（跳过回收站）

#### 输入

| 参数 | 类型 | 必填 | 说明 |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | 是 | 要永久删除的文件 ID |

#### 输出

| 参数 | 类型 | 说明 |
| --------- | ---- | ----------- |
| `deleted` | boolean | 文件是否已成功删除 |
| `fileId` | string | 已删除文件的 ID |

### `google_drive_share`

与用户、群组、域共享文件，或将其公开

#### 输入

| 参数 | 类型 | 必填 | 说明 |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | 是 | 要共享的文件 ID |
| `type` | string | 是 | 授权对象类型：user、group、domain 或 anyone |
| `role` | string | 是 | 权限角色：owner（转移所有权）、organizer（仅限共享云端硬盘）、fileOrganizer（仅限共享云端硬盘）、writer（可编辑）、commenter（可查看和评论）、reader（仅查看） |
| `email` | string | 否 | 用户或群组的邮箱地址（type=user 或 type=group 时必填） |
| `domain` | string | 否 | 要共享的域（type=domain 时必填） |
| `transferOwnership` | boolean | 否 | 当角色为 owner 时必填。将所有权转移给指定用户。 |
| `moveToNewOwnersRoot` | boolean | 否 | 转移所有权时，将文件移动到新所有者的“我的云端硬盘”根目录。 |
| `sendNotification` | boolean | 否 | 是否发送邮件通知（默认：true） |
| `emailMessage` | string | 否 | 通知邮件中包含的自定义消息 |

#### 输出

| 参数 | 类型 | 说明 |
| --------- | ---- | ----------- |
| `permission` | json | 创建的权限详情 |
|   ↳ `id` | string | 权限 ID |
|   ↳ `type` | string | 授权对象类型（user、group、domain、anyone） |
|   ↳ `role` | string | 权限角色 |
|   ↳ `emailAddress` | string | 授权对象邮箱 |
|   ↳ `displayName` | string | 授权对象显示名称 |
|   ↳ `domain` | string | 授权对象域名 |
|   ↳ `expirationTime` | string | 过期时间 |
|   ↳ `deleted` | boolean | 授权对象是否已被删除 |

### `google_drive_unshare`

移除文件的权限（撤销访问权限）

#### 输入

| 参数 | 类型 | 必填 | 说明 |
| --------- | ---- | ---- | ----------- |
| `fileId` | string | 是 | 要修改权限的文件 ID |
| `permissionId` | string | 是 | 要移除的权限 ID（可通过 list_permissions 获取） |

#### 输出

| 参数 | 类型 | 说明 |
| --------- | ---- | ----------- |
| `removed` | boolean | 权限是否成功移除 |
| `fileId` | string | 文件 ID |
| `permissionId` | string | 被移除的权限 ID |

### `google_drive_list_permissions`

列出 Google Drive 文件的所有权限（谁有访问权限）

#### 输入

| 参数 | 类型 | 必填 | 说明 |
| --------- | ---- | ---- | ----------- |
| `fileId` | string | 是 | 要列出权限的文件 ID |

#### 输出

| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `permissions` | array | 文件的权限列表 |
|   ↳ `id` | string | 权限 ID（用于移除权限） |
|   ↳ `type` | string | 授权对象类型（user、group、domain、anyone） |
|   ↳ `role` | string | 权限角色（owner、organizer、fileOrganizer、writer、commenter、reader） |
|   ↳ `emailAddress` | string | 授权对象的邮箱 |
|   ↳ `displayName` | string | 授权对象的显示名称 |
|   ↳ `photoLink` | string | 授权对象的头像 URL |
|   ↳ `domain` | string | 授权对象的域名 |
|   ↳ `expirationTime` | string | 权限过期时间 |
|   ↳ `deleted` | boolean | 授权账户是否已被删除 |
|   ↳ `allowFileDiscovery` | boolean | 文件是否对授权对象可发现 |
|   ↳ `pendingOwner` | boolean | 所有权转移是否待处理 |
|   ↳ `permissionDetails` | json | 继承权限的详细信息 |
| `nextPageToken` | string | 获取下一页权限的令牌 |

### `google_drive_get_about`

获取用户及其 Google Drive 信息（存储配额、功能等）

#### 输入

| 参数 | 类型 | 是否必需 | 描述 |
| --------- | ---- | -------- | ----------- |

#### 输出

| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `user` | json | 已认证用户的信息 |
|   ↳ `displayName` | string | 用户显示名称 |
|   ↳ `emailAddress` | string | 用户邮箱地址 |
|   ↳ `photoLink` | string | 用户头像 URL |
|   ↳ `permissionId` | string | 用户权限 ID |
|   ↳ `me` | boolean | 是否为已认证用户 |
| `storageQuota` | json | 存储配额信息（字节） |
|   ↳ `limit` | string | 总存储上限（字节，null 表示无限制） |
|   ↳ `usage` | string | 已用总存储（字节） |
|   ↳ `usageInDrive` | string | Drive 文件已用存储（字节） |
|   ↳ `usageInDriveTrash` | string | 回收站文件已用存储（字节） |
| `canCreateDrives` | boolean | 用户是否可以创建共享云端硬盘 |
| `importFormats` | json | 可导入的 MIME 类型及其目标格式的映射 |
| `exportFormats` | json | Google Workspace MIME 类型及其可导出格式的映射 |
| `maxUploadSize` | string | 最大上传文件大小（字节） |
