Google Drive Node.js - 从节点v7更新到v9后上传文件时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Google Drive Node.js - 从节点v7更新到v9后上传文件时出错相关的知识,希望对你有一定的参考价值。

我在一年前用google drive api v3编写了一个node.js脚本,我使用的是node v7。现在我决定更新到v9并更新我的所有节点模块。但后来我遇到了很多问题。

第一个问题是auth不再工作了。官方谷歌驱动器文档还没有更新自己的代码,所以我发现随机评论的解决方案。例如

const readline = require('readline'),
  { google } = require('googleapis'),
  service = google.drive('v3'),
  { OAuth2Client } = require('google-auth-library'),
  googleAuth = require('google-auth-library');

在我举个例子之前:

google = require('googleapis')

现在,在修复auth之后,google的quickstart文件再次运行,我能够创建我的令牌并列出我的文件等。

然后,当我从脚本到达我的上传区域时,我收到以下错误代码:

Request body larger than maxBodyLength limit

我试图谷歌它与谷歌驱动器api结合,但无法找到任何解决方案。我的代码可能已经过时了吗?因为使用节点v7和一年多前的谷歌模块,它就像一个魅力! :/

这是我的上传代码:

        var fileMetadata = {
        'name': together,
        parents: [ foldername_folderid ]

    }

    var media = {
        mimeType: 'application/octet-stream',
        body: fs.createReadStream('C:/testarea/file.container')  // <-- this is my own file format it worked before with the old google modules!
    }

    drive.files.create({
        resource: fileMetadata,
        media: media,
        auth: auth,
        fields: 'id'
    }, function(e, file) {
        if (e) {
          console.log('error: ' + e)
          return;
        } 


         //.. do something when upload successfully

    }); 

我上传的测试文件只有不到20MB,所以我认为问题与文件大小无关?如果有人对此有所了解,那就太好了!

编辑:代码正在使用一个非常小的文件,例如5MB以下..我认为谷歌改变了他们的库,他们不支持任何超过10MB的单个文件上传。我认为你必须使用chunked upload

答案

该代码正在使用一个非常小的文件,例如5MB以下。我认为谷歌改变了他们的库,他们不再支持大于10MB的单个文件上传。我认为你必须使用chunked upload。

但是我找不到node.js ... https://developers.google.com/drive/v3/web/resumable-upload的可恢复上传的示例代码

也许有人有示例代码?我在这里为这个问题创建了一个新帖子:How to resumable upload with google drive node.js

以上是关于Google Drive Node.js - 从节点v7更新到v9后上传文件时出错的主要内容,如果未能解决你的问题,请参考以下文章

Google Drive Node.js - 从节点v7更新到v9后上传文件时出错

Google Drive API失败,因为库的google.drive功能不存在

如何在 google drive 等网页中查看 office 文件

在google drive使用google.colab云服务

Google Drive 范围 drive.file 不足以将应用拥有的文件复制到应用用户的 Google Drive

通过 Google Drive API 从本地 CSV 文件创建 Google Drive 电子表格