我可以访问共享的谷歌驱动器(作为内容管理器),我想在该驱动器中创建文件,但当我尝试这样做时,它给了我错误:以下是我的代码和我收到的错误。
我正在使用的范围
`const SCOPES = ['https://www.googleapis.com/auth/drive'];`
// My authorize function:
`async function authorize() {
const jwtClient = new google.auth.JWT(
process.env.CLIENT_EMAIL,
null,
process.env.PRIVATE_KEY,
SCOPES
);
await jwtClient.authorize();
return jwtClient;
}
`
字符串
我创建硬盘的方式
`const auth = await authorize();
const drive = google.drive({ version: 'v3', auth });
async function createFolderInDrive(drive: any, driveId: string) {
try {
const folderMetadata = {
name: FOLDER_NAME,
mimeType: 'application/vnd.google-apps.folder',
parents: [driveId],
};
// Create the folder in the shared drive
const folder = await drive.files.create({
resource: folderMetadata,
fields: 'id, name',
});
console.log(
'Folder ${folder.data.name} created with ID: ${folder.data.id}'
);
} catch (err) {
console.error('Error creating folder:', err.message);
}
}
`
型
错误我收到:文件未找到:DRIVE_ID.虽然我能够使用drive.drive.list
列出驱动器.
我正在使用的上传功能:
`async function uploadFile(drive: any, fileName: string, stream: Readable) {
try {
const fileMetaData = {
name: fileName,
parents: [process.env.DRIVE_ID],
mimeType: 'application/pdf',
};
const media = {
mimeType: 'application/pdf',
body: stream,
};
const res = await drive.files.create({
resource: fileMetaData,
media: media,
});
return res;
} catch (err) {
console.log('ERROR:', err.message);
}
}
`
型
我收到的错误:'文件未找到:DRIVE_ID。
任何帮助将不胜感激。
我尝试了很多不同的解决方案.有一件事,我认为这可能是问题的作用.我不确定我在该驱动器的作用.我有内容-管理员访问权限,但我看到我必须具有写入或所有者角色。我确定我不是所有者,但不确定我是否是写入者。不确定如何检查我的角色。我通过API检查我的权限,我收到了一个编号中的permissionId。
1条答案
按热度按时间hgtggwj01#
从
Create a file/folder in a shared drive using the service account who has Content Manager access
,我相信你的服务帐户有权限写入共享驱动器。而且,从你的显示脚本,我猜driveId
可能是根文件夹或共享驱动器的特定文件夹。在这种情况下,如何进行以下修改?发件人:
字符串
而且,
型
收件人:
型
而且,
型
参考: