使用googleapis Node.js-Express上传Drive文件后无法找到的问题咨询
关于JWT认证上传Drive文件后无法查看的问题解答
不会创建新的空Drive账户
你用googleapis.google.auth.JWT认证的是服务账号——这是一种独立于个人Google账户的特殊账号,它拥有自己专属的Drive存储空间。你上传的文件都存在服务账号的Drive里,而非你个人的Drive,这就是你找不到文件的原因,并没有创建新的个人Drive账户。
查看文件的方法
- 直接共享文件到个人邮箱:上传文件成功后,调用
drive.permissions.create接口给你的个人邮箱添加权限,示例代码:
const { google } = require('googleapis'); // 假设已完成JWT认证并得到drive实例 async function shareFile(fileId, userEmail) { await drive.permissions.create({ fileId: fileId, requestBody: { role: 'writer', // 可按需设为reader/writer/owner type: 'user', emailAddress: userEmail }, fields: 'id' }); }
执行后你的个人邮箱会收到共享通知,即可在自己的Drive中查看该文件。
共享服务账号的文件夹到个人账号:先通过服务账号创建一个Drive文件夹,将其共享给你的个人邮箱,之后上传文件时指定这个文件夹为父目录,所有上传到该文件夹的文件都会自动出现在你个人Drive的「共享给我的」列表里。
域范围委派(仅适用于Google Workspace用户):如果你的个人账号属于某个Google Workspace域,可在Google Cloud控制台开启服务账号的域范围委派,再在Workspace管理员后台完成授权,让服务账号以你的个人账号身份执行上传操作,文件会直接存入你个人的Drive空间,无需额外共享。
内容的提问来源于stack exchange,提问作者Omar AlHadidi
相关产品推荐
相关产品推荐

