Google Drive API V3 - 复制功能不复制内容
Google Drive API V3 - Copy function not copying contents
我一直致力于 'duplicate' 团队驱动器的项目。我的应用程序成功地重新创建了整个驱动器结构并复制了 mime 类型为 而不是 的文件 Google 文件夹。我的问题是复制文件的内容也没有被复制。
我在应用程序中使用 Node,使用 Google Drive API SDK。
await drive
.files
.copy({
fileId: file.id,
supportsAllDrives: true,
requestBody: {
name: Mustache.render(originalFile.name, data),
driveId: driveId,
parents: [
parentId
],
mimeType: originalFile.mimeType
}
})
.then(res => {
newFile = res.data;
})
.catch(e => {
logger.error("Issue copying a file: ", e);
});
因此,虽然上述功能按预期运行(调整新文件的名称,将其放入正确的父文件夹中,在正确的新驱动器 ID 下),但没有这些复制文件中的内容。
举一个更具体的例子,假设我正在复制的文件之一是 PDF。具有正确 mimetype 的新 PDF 显示在我的新团队驱动器中,但是当打开它时(在浏览器中或下载),那里什么也没有。请参阅一些屏幕截图了解我的意思。
原盘和文件,注意大小:
新的云端硬盘文件,没有 size/content:
编辑1:
我再次尝试使用 API 资源管理器作为概念证明。它按预期工作,复制内容。尝试了两次,首先是同一个团队驱动器中的同一个文件夹,然后创建了一个带有子文件夹的新团队驱动器。两种情况下的内容复制都很好。
如果重要的话,这也是创建新驱动器的请求。 requestId
只是使用 Chance repo.
的随机 guid
我能想到的唯一错误来源是mimeType
如果只想复制文件而不转换文件,则不需要指定 mimeType
。
尝试一个没有请求正文的简单请求:
drive.files.copy(
{
fileId: file.id,
requestBody: {}
},
(err, res) => {
if (err) return console.log(("Issue copying a file: " + err);
newFile = res.data;
console.log(newFile);
}
);
确认无误后,逐一添加参数。
我一直致力于 'duplicate' 团队驱动器的项目。我的应用程序成功地重新创建了整个驱动器结构并复制了 mime 类型为 而不是 的文件 Google 文件夹。我的问题是复制文件的内容也没有被复制。
我在应用程序中使用 Node,使用 Google Drive API SDK。
await drive
.files
.copy({
fileId: file.id,
supportsAllDrives: true,
requestBody: {
name: Mustache.render(originalFile.name, data),
driveId: driveId,
parents: [
parentId
],
mimeType: originalFile.mimeType
}
})
.then(res => {
newFile = res.data;
})
.catch(e => {
logger.error("Issue copying a file: ", e);
});
因此,虽然上述功能按预期运行(调整新文件的名称,将其放入正确的父文件夹中,在正确的新驱动器 ID 下),但没有这些复制文件中的内容。
举一个更具体的例子,假设我正在复制的文件之一是 PDF。具有正确 mimetype 的新 PDF 显示在我的新团队驱动器中,但是当打开它时(在浏览器中或下载),那里什么也没有。请参阅一些屏幕截图了解我的意思。
原盘和文件,注意大小:
新的云端硬盘文件,没有 size/content:
编辑1: 我再次尝试使用 API 资源管理器作为概念证明。它按预期工作,复制内容。尝试了两次,首先是同一个团队驱动器中的同一个文件夹,然后创建了一个带有子文件夹的新团队驱动器。两种情况下的内容复制都很好。
如果重要的话,这也是创建新驱动器的请求。 requestId
只是使用 Chance repo.
我能想到的唯一错误来源是mimeType
如果只想复制文件而不转换文件,则不需要指定 mimeType
。
尝试一个没有请求正文的简单请求:
drive.files.copy(
{
fileId: file.id,
requestBody: {}
},
(err, res) => {
if (err) return console.log(("Issue copying a file: " + err);
newFile = res.data;
console.log(newFile);
}
);
确认无误后,逐一添加参数。