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);  
  }
);

确认无误后,逐一添加参数。