首页 > 解决方案 > Google Drive API 进度条错误

问题描述

我编写了以下代码将文件上传到我的 Google Drive 帐户。它工作得很好。然后我尝试添加一些上传进度跟踪器,但遇到了一些问题。它可以工作,但在上传完成之前,进度几乎立即达到 100%。

export async function uploadFile(auth) {
  const fileMetadata = {
    name: FILENAME,
  };
  const fileWrite = fs.createReadStream(path.join(homedir(), 'Pictures', FILENAME));
  const fileSize = fs.statSync(path.join(homedir(), 'Pictures', FILENAME)).size;
  const media = {
    mimeType: FILETYPE,
    body: fileWrite,
  };
  const drive = google.drive({ version: 'v3', auth });
  const res = await drive.files.create({
    fileMetadata,
    media,
    fields: 'id',
  }, {
    onUploadProgress: (evt) => {
      const progress = (evt.bytesRead / fileSize) * 100;
      console.log(progress);
    },
  });
  console.log(res.data);
}

它上传我想要的文件,显示进度并返回文件ID。问题是上传进度错误。我尝试上传一个 100mb 的文件,通过 20mbps 的上传连接,完成进度只需要 1.8 秒。承诺文件上传在 14 秒后解决

标签: javascriptnode.jsgoogle-drive-apigoogle-api-nodejs-client

解决方案


推荐阅读