如何在auth/drive.file权限域下通过文件夹名称获取文件夹ID
在Google Drive API的
auth/drive.file权限域下通过文件夹名称获取ID的解决方案 创建时直接留存文件夹ID
当你通过root别名创建文件夹时,Drive API的创建响应会直接返回该文件夹的完整资源信息,其中包含id字段。你需要在创建完成后立即将这个ID存储到你的应用数据库、配置文件或用户关联的存储中,后续上传文件时直接调用即可,无需再通过名称查询。
示例代码片段(以Python为例):folder_metadata = { 'name': '目标文件夹', 'mimeType': 'application/vnd.google-apps.folder' } folder = drive_service.files().create(body=folder_metadata, fields='id').execute() # 存储这个ID供后续使用 saved_folder_id = folder.get('id')引导用户授权目标文件夹
若文件夹并非当前应用创建,或是之前创建但未留存ID,可通过用户授权流程让用户主动选择该文件夹:- 使用Google Picker API构建文件选择界面,让用户选中目标文件夹,选择完成后Picker会返回该文件夹的ID;
- 或通过OAuth授权流程附加文件夹权限,用户授权后应用即可访问该文件夹的ID及其中资源。
注意:auth/drive.file权限下,用户授权某文件夹后,应用自动获得该文件夹下所有子资源的访问权限,无需重复授权。
通过已授权的关联文件反查
如果目标文件夹下已有应用上传或授权的文件,可通过查询应用有权访问的文件列表,借助文件的parents字段反推文件夹ID:
示例查询语句(用于Files.list接口):q="name='目标文件名' and mimeType!='application/vnd.google-apps.folder'"获取到文件资源后,从
parents数组中提取对应的文件夹ID即可。
内容的提问来源于stack exchange,提问作者Special Rodem
相关产品推荐
相关产品推荐

