关于 google-drive-automation
此工作流技能通过 Composio 工具包自动处理 Google Drive 文件、文件夹、搜索和权限,适用于使用 Rube MCP 管理已连接 Google Drive 账户的用户。
主要功能
- 01上传和下载文件
- 02搜索与列出 Drive 内容
- 03创建文件夹并移动文件
- 04管理共享权限
适用场景
- 01按名称、类型、日期或文件夹查找文件
- 02上传或下载 Drive 文档
- 03将文件整理到文件夹结构中
- 04共享文件或更改访问权限
MCP 相关
通过 Rube MCP 调用 Composio 的 Google Drive 工具包。连接 Rube MCP 和有效的 Google Drive 账户,并在执行工作流前获取最新工具架构。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ composiohq/ awesome-claude-skills --skill google-drive-automation安装后在 Claude Code 中输入/google-drive-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 Google Drive
通过 Composio 的 Google Drive 工具包自动化 Google Drive 工作流,包括文件上传/下载、搜索、文件夹管理、共享/权限管理和整理。
工具包文档:composio.dev/toolkits/googledrive
前提条件
- 必须已连接 Rube MCP(可使用 RUBE_SEARCH_TOOLS)
- 通过
RUBE_MANAGE_CONNECTIONS建立有效的 Google Drive 连接,工具包为googledrive - 始终先调用
RUBE_SEARCH_TOOLS,以获取最新的工具架构
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥——只需添加端点即可使用。
- 确认
RUBE_SEARCH_TOOLS有响应,以验证 Rube MCP 可用 - 使用工具包
googledrive调用RUBE_MANAGE_CONNECTIONS - 如果连接状态不是 ACTIVE,请使用返回的授权链接完成 Google OAuth
- 在运行任何工作流前,确认连接状态为 ACTIVE
核心工作流
1. 上传和下载文件
适用场景:用户想要向 Google Drive 上传文件或从中下载文件
工具调用顺序:
GOOGLEDRIVE_FIND_FILE- 定位要上传到的目标文件夹 [前置步骤]GOOGLEDRIVE_UPLOAD_FILE- 上传文件(最大 5MB)[必需]GOOGLEDRIVE_RESUMABLE_UPLOAD- 上传大文件 [备用方案]GOOGLEDRIVE_DOWNLOAD_FILE- 通过 ID 下载文件 [必需]GOOGLEDRIVE_DOWNLOAD_FILE_OPERATION- 跟踪长时间运行的下载 [备用方案]GOOGLEDRIVE_GET_FILE_METADATA- 验证上传/下载后的文件 [可选]
关键参数:
file_to_upload:包含name、mimetype和s3key的对象(文件必须位于内部存储中)folder_to_upload_to:目标文件夹 ID(可选;省略时上传到根目录)file_id:要下载的文件 IDmime_type:仅用于 Google Workspace 文件的导出格式(原生文件请省略)
注意事项:
GOOGLEDRIVE_UPLOAD_FILE需要file_to_upload.s3key;文件必须已位于内部存储中- 对于非 Google 格式(Excel、PDF),不要设置
mime_type;原生文件设置此参数会导致错误 - 下载响应会在
data.downloaded_file_content.s3url提供临时 URL,而不是内联字节数据 - 对于大于 5MB 的文件或基本上传失败时,请使用
GOOGLEDRIVE_RESUMABLE_UPLOAD
2. 搜索和列出文件
适用场景:用户想要查找特定文件或浏览 Drive 内容
工具调用顺序:
GOOGLEDRIVE_FIND_FILE- 按名称、内容、类型、日期或文件夹搜索 [必需]GOOGLEDRIVE_LIST_FILES- 按文件夹范围浏览文件 [替代方案]GOOGLEDRIVE_LIST_SHARED_DRIVES- 列出共享云端硬盘 [可选]GOOGLEDRIVE_GET_FILE_METADATA- 获取详细文件信息 [可选]GOOGLEDRIVE_GET_ABOUT- 检查存储空间配额和支持的格式 [可选]
关键参数:
q:Drive 查询字符串(例如,"name contains 'report'"、"mimeType = 'application/pdf'")corpora:搜索范围('user'、'domain'、'drive'、'allDrives')fields:要包含在响应中的字段(例如,'files(id,name,mimeType)')orderBy:排序键('modifiedTime desc'、'name'、'quotaBytesUsed desc')pageSize:每页结果数(最多 1000)pageToken:来自nextPageToken的分页游标folder_id:将搜索范围限定到特定文件夹
注意事项:
- 如果 OAuth 作用域不足以访问共享云端硬盘,会出现 403 PERMISSION_DENIED
- 必须分页;文件位于
response.data.files中;持续使用nextPageToken,直至没有更多结果 corpora="domain"可能会触发 400;请尝试使用"allDrives"并设置includeItemsFromAllDrives=true- 查询复杂度有限制:超过 5-10 个 OR 子句可能会报错 "The query is too complex"
name不支持通配符 (*);部分匹配请使用contains- 无法按名称搜索 'My Drive';请使用
folder_id='root'搜索根文件夹 - 搜索用户邮箱时,请使用
'[email protected]' in owners(不要使用owner:[email protected])
3. 共享文件和管理权限
使用场景:用户希望共享文件或管理访问权限
工具调用顺序:
GOOGLEDRIVE_FIND_FILE- 查找要共享的文件 [前置条件]GOOGLEDRIVE_ADD_FILE_SHARING_PREFERENCE- 设置共享权限 [必需]GOOGLEDRIVE_LIST_PERMISSIONS- 查看当前权限 [可选]GOOGLEDRIVE_GET_PERMISSION- 检查特定权限 [可选]GOOGLEDRIVE_UPDATE_PERMISSION- 修改现有权限 [可选]GOOGLEDRIVE_DELETE_PERMISSION- 撤销访问权限 [可选]
关键参数:
file_id:要共享的文件 IDtype:'user'、'group'、'domain' 或 'anyone'role:'owner'、'organizer'、'fileOrganizer'、'writer'、'commenter'、'reader'email_address:当 type='user' 或 'group' 时必需domain:当 type='domain' 时必需transfer_ownership:当 role='owner' 时必需
注意事项:
- 无效的类型/邮箱组合会触发 4xx 错误
- 使用
type='anyone'或高权限角色存在风险;请先获得用户明确确认 - 组织政策可能会阻止某些共享类型,导致 403 错误
- 权限变更可能需要一段时间才能生效
- 共享前,使用
GMAIL_SEARCH_PEOPLE将联系人姓名解析为邮箱
4. 创建和整理文件夹
使用场景:用户希望创建文件夹结构或在文件夹之间移动文件
工具调用顺序:
GOOGLEDRIVE_FIND_FILE- 检查文件夹是否已存在 [前置条件]GOOGLEDRIVE_CREATE_FOLDER- 创建新文件夹 [必需]GOOGLEDRIVE_GET_FILE_METADATA- 验证创建的文件夹 [可选]GOOGLEDRIVE_MOVE_FILE- 在文件夹之间移动文件 [可选]GOOGLEDRIVE_UPDATE_FILE_PUT- 更新文件元数据/父文件夹 [替代方案]
关键参数:
name:文件夹名称parent_id:父文件夹 ID(不是名称);根目录可省略file_id:要移动的文件add_parents:移动的目标文件夹 IDremove_parents:要移除的源文件夹 ID
注意事项:
GOOGLEDRIVE_CREATE_FOLDER要求parent_id为 ID,而不是文件夹名称- 使用
parent_id="root"可在顶层创建文件夹;对于嵌套路径,请按顺序使用文件夹 ID GOOGLEDRIVE_FIND_FILE每页返回约 100 个项目;对于大型云端硬盘,请使用nextPageToken获取后续页面- 移动操作可能会导致项目拥有多个父文件夹;要真正移动项目,请使用
remove_parents - 创建子文件夹前,请务必确认父文件夹存在
常见模式
ID 解析
- 文件/文件夹名称 -> ID:使用带
q参数的GOOGLEDRIVE_FIND_FILE - 根文件夹:使用
folder_id='root'或'root' in parents - 共享云端硬盘 -> driveId:
GOOGLEDRIVE_LIST_SHARED_DRIVES - 联系人姓名 -> 邮箱:
GMAIL_SEARCH_PEOPLE(用于共享)
查询语法
Google Drive 使用特定的查询语言:
- 名称搜索:
"name contains 'report'"或"name = 'exact.pdf'" - 类型筛选:
"mimeType = 'application/pdf'"或"mimeType = 'application/vnd.google-apps.folder'" - 文件夹范围:
"'FOLDER_ID' in parents" - 日期筛选:
"modifiedTime > '2024-01-01T00:00:00'" - 使用
and/or/not组合条件:"name contains 'report' and trashed = false" - 布尔筛选:
"sharedWithMe = true"、"starred = true"、"trashed = false"
分页
- 持续使用
nextPageToken,直至其缺失,以获取完整结果 - 明确设置
pageSize(默认值为 100,最大值为 1000) - 运行多次搜索时,请对结果去重
导出格式
对于 Google Workspace 文件,设置 mime_type 以指定导出格式:
- Docs:
application/pdf、text/plain、text/html、application/vnd.openxmlformats-officedocument.wordprocessingml.document - Sheets:
text/csv、application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - Slides:
application/pdf、application/vnd.openxmlformats-officedocument.presentationml.presentation
已知陷阱
- 必须使用内部存储:上传要求文件位于内部 S3 存储中(s3key)
- 导出与下载:仅对 Google Workspace 文件设置
mime_type;原生文件应省略 - 临时 URL:通过
s3url下载的内容是临时的;请及时获取 - 查询复杂度:超过 5-10 个 OR 子句可能会报错;请将复杂搜索拆分为多个查询
- 共享云端硬盘范围:缺少云端硬盘权限会导致结果为空;请先确认访问权限
- 不支持通配符:部分匹配名称时,请使用
contains运算符,而不是* - 文件夹创建链:请始终将文件夹 ID(而不是名称)作为
parent_id传入 - 多个父级:移动操作可能会导致项目拥有多个父级;请使用
remove_parents - 速率限制:大量搜索/导出可能触发 403/429;请实现退避机制
快速参考
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 搜索文件 | GOOGLEDRIVE_FIND_FILE | q、corpora、pageSize |
| 列出文件 | GOOGLEDRIVE_LIST_FILES | folderId、q、orderBy |
| 上传文件 | GOOGLEDRIVE_UPLOAD_FILE | file_to_upload、folder_to_upload_to |
| 可续传上传 | GOOGLEDRIVE_RESUMABLE_UPLOAD | 文件数据 |
| 下载文件 | GOOGLEDRIVE_DOWNLOAD_FILE | file_id、mime_type(仅限 Workspace) |
| 文件元数据 | GOOGLEDRIVE_GET_FILE_METADATA | fileId、fields |
| 创建文件夹 | GOOGLEDRIVE_CREATE_FOLDER | name、parent_id |
| 移动文件 | GOOGLEDRIVE_MOVE_FILE | file_id、add_parents、remove_parents |
| 共享文件 | GOOGLEDRIVE_ADD_FILE_SHARING_PREFERENCE | file_id、role、type、email_address |
| 列出权限 | GOOGLEDRIVE_LIST_PERMISSIONS | fileId |
| 更新权限 | GOOGLEDRIVE_UPDATE_PERMISSION | file_id、permission_id |
| 删除权限 | GOOGLEDRIVE_DELETE_PERMISSION | file_id、permission_id |
| 列出共享云端硬盘 | GOOGLEDRIVE_LIST_SHARED_DRIVES | pageSize |
| 云端硬盘信息 | GOOGLEDRIVE_GET_ABOUT | (无) |
| 创建快捷方式 | GOOGLEDRIVE_CREATE_SHORTCUT_TO_FILE | 目标 file_id |
由 Composio 提供支持
评论
支持 Markdown