javascript - 在 Google Drive API v3 中使用 drive.files.copy 通过 nodejs 使用 API 将 Word 文档转换为 Google 文档
问题描述
我正在尝试通过 nodejs 使用 API 将 Word 文档转换为 Google 文档。文档一词已经在一个文件夹中,我只想将它们转换为谷歌文档。我正在使用 v3。
v3 文档说,为了使用副本转换文件,您需要将转换参数替换为资源正文中的 mimeType。
我不知道该怎么做?
function listFiles(auth) {
const drive = google.drive({version: 'v3', auth});
drive.files.list({
q: "mimeType = 'application/msword'",
pageSize: 100,
fields: 'nextPageToken, files(id, name)',
}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
const files = res.data.files;
if (files.length) {
console.log('Files:');
files.map((file) => {
console.log(`${file.name} (${file.id})`);
drive.files.copy({
fileId: file.id,
'name' : 'Updated File Name',
'mimeType' : 'application/vnd.google-apps.document'
})
});
} else {
console.log('No files found.');
}
});
}
不确定我是否非常了解如何引用资源主体。会感激一个指导吗?
解决方案
- 您想使用 Drive API v3 中的 files.copy 方法将 Microsoft Word(doc 文件)转换为 Google Document。
- 您想使用 googleapis 和 Node.js 来实现这一点。
- 您已经能够使用 Drive API 为 Google Drive 获取和放置文件。
如果我的理解是正确的,这个答案怎么样?请认为这只是几个可能的答案之一。
修改点:
- 我认为这
drive.files.list()
适用于您的脚本。 - 我认为这
drive.files.copy()
有一个修改部分。- 请在或中包含
name
和。mimeType
requestBody
resource
- 在这种情况下,它使用回调函数来检索错误消息。
- 请在或中包含
修改后的脚本:
从:drive.files.copy({
fileId: file.id,
'name' : 'Updated File Name',
'mimeType' : 'application/vnd.google-apps.document'
})
到:
drive.files.copy(
{
fileId: file.id,
requestBody: { // You can also use "resource" instead of "requestBody".
name: file.name,
mimeType: "application/vnd.google-apps.document"
}
},
(err, res) => {
if (err) return console.log("The API returned an error: " + err);
console.log(res.data); // If you need, you can see the information of copied file.
}
);
- 在这种情况下,通过删除扩展名使用 DOC 文件的文件名。并将复制的文件与 DOC 文件放在同一文件夹中。
笔记:
- 在这个修改后的脚本中,它假设您设置的范围可以用于使用
drive.files.copy()
. 如果发生与范围相关的错误,请添加https://www.googleapis.com/auth/drive
到范围。
参考:
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。
推荐阅读
- azure - 尝试在 Azure DevOps 管道外壳中运行“aws ecr-get-login-password”命令时出现“InvalidSignatureException”
- mysql - MySQL 到 CSV Pythonanywhere
- c# - 无法将“T”类型的值分配给“T”类型的实例
- mysql - mysql获取where子句天气计数是否为0
- excel - 每周粒度上的每月运行总计的 Dax 度量
- javascript - In form 仅在 if 或 both if 时才起作用
- php - navigator.getUserMedia 在非本地的 php 服务器上未定义,但在本地它可以完美运行
- node.js - 在 POSIX 和 nodeJS 中写入文件名包含“/”的文件
- r - R中for循环中的条件计数
- oracle-sqldeveloper - 如何以 PSV 格式和多个文件从 Oracle SQL Developer 导出大量数据