Node Google Drive Api v3 上传文件进度

问题描述 投票:0回答:1

我想在上传大文件时显示上传进度。我正在使用 googleapis npm 包,drive_v3。同样的问题询问下载进度并回答了使用流的一些解决方法。不幸的是我无法让它与上传一起工作。

示例代码在这里

// drive:drive_v3.Drive
let response = await this.drive.files.create({
    media: {
        body: buffer
    },
    fields: 'id',
}, {
    // this event is deprecated and ignored :C
    onUploadProgress(ev) {
    }
})

我尝试了 onUploadProgress 事件,该事件已弃用,无法正常工作。尝试了一些流方法但没有成功。

javascript node.js typescript google-drive-api gaxios
1个回答
0
投票

我设法在nodejs google Drive api 上获取上传进度。正如我之前所说,通过使用 progress_stream 包使用基于流的解决方法。

let filePath = "someFilePath.zip"    
let stream = fs.createReadStream(filePath);
let stat = fs.statSync(filePath);

let progressable = progress_stream({ length: stat.size, time: 100, })
progressable.on("progress", (e) => {
  // progress event...
  console.log("upload progress", e.percentage)
});
stream.pipe(progressable)
let body = progressable;
            
//drive:drive_v3.Drive
let response = await this.drive.files.create({
  media: {
    body: body
})
© www.soinside.com 2019 - 2024. All rights reserved.