我正在寻找一种上传文件的解决方案具体的元数据!我试图将canDownload设置为false,但是结果没有任何反映!我想将文件设置为“所有人都可以访问”。这是我的代码:
const jwToken = new google.auth.JWT(
token.client_email,
null,
token.private_key,
["https://www.googleapis.com/auth/drive"],
null
);
jwToken.authorize((err : any) => {
if (err) {
console.log(err);
} else {
console.log("Authentication Success!");
}
});
const metaData = {
'name': filename,
"shared": true,
"capabilities" : {
"canDownload": false
},
parents: [folderId]
};
const media = {
mimeType: 'Application/Pdf',
body: fileSystem.createReadStream(pathSystem.join(path))
};
drive.files.create({
auth : jwToken,
resource : metaData,
media : media,
fields : 'id'
}, (err : any, file : any) => {
if (err) {
console.log("coming!!");
throw err;
} else {
console.log("File Upload Successfully!");
}
});
如果我的理解是正确的,那么这个答案怎么样?请认为这只是几个可能的答案之一。
capabilities
:[不幸的是,capabilities.canDownload
的属性不是writable
。通过这种方法,如何使用copyRequiresWriterPermission
?使用此选项,文件被设置为“禁用评论者和查看者的下载,打印和复制选项”。
shared
:shared
的属性也不是writable
。因此,当您想与任何人作为读者共享时,请使用权限方法:在Drive API中创建。
修改脚本后,请进行如下修改。
const metaData = {
'name': filename,
"shared": true,
"capabilities" : {
"canDownload": false
},
parents: [folderId]
};
const media = {
mimeType: 'Application/Pdf',
body: fileSystem.createReadStream(pathSystem.join(path))
};
drive.files.create({
auth : jwToken,
resource : metaData,
media : media,
fields : 'id'
}, (err : any, file : any) => {
if (err) {
console.log("coming!!");
throw err;
} else {
console.log("File Upload Successfully!");
}
});
const metaData = {
name: filename,
parents: [folderId],
copyRequiresWriterPermission: true
};
const media = {
mimeType: "application/pdf",
body: fileSystem.createReadStream(pathSystem.join(path))
};
drive.files.create(
{
auth: jwToken,
resource: metaData,
media: media,
fields: "id"
},
(err: any, file: any) => {
if (err) {
console.log(err);
return;
}
const fileId = file.data.id;
console.log(fileId);
const body = {
auth: jwToken,
fileId: fileId,
requestBody: {
role: "reader",
type: "anyone"
}
};
drive.permissions.create(body, (err: any, res: any) => {
if (err) {
console.error(err);
return;
}
console.log(res.data);
});
}
);
copyRequiresWriterPermission: true
被添加到文件的请求正文:创建。{role: "reader", type: "anyone"}
用于权限的请求正文:创建。如果我误解了你的问题,而这不是你想要的方向,我深表歉意。