Google Drive 下载和上传问题

Google Drive 下载和上传问题

我已经集成了 Google Drive 下载并在我的网站中共享文件。

用户使用 google-login 登录我们的应用程序,一旦用户登录我们的网站,我们就会获得他的授权范围。我们集成了 google-chooser,可以从他的个人 google 驱动器中拾取任何文件。一旦他选择了任何文件(例如:sample.pdf),我们就会将他的文件从 google 驱动器下载到我们的网站。我们使用以下代码。

function downloadFile(auth)
{
  const drive = google.drive({ version: 'v3', auth });
  var fileId = 'Choosen-file-id from google drive';
  const dest = fs.createWriteStream('./downloadFiles/12.doc');
  try{
        drive.files.export({
            fileId: fileId,
            mimeType: 'application/vnd.google-apps.document'
        }, {
            responseType: 'stream'
        },function(err, response){
            if(err)return console.log(err);

            response.data.on('error', err => {
                console.log(err);
            }).on('end', ()=>{
                console.log('success');
            })
            .pipe(dest);
       });
      }catch(errr)
      {
        console.log(errr,'downloadFileErr')
      }
}

同样,我们使用以下代码将我们网站上的任何文件共享给登录的用户驱动器帐户。

function uploadFile(auth)
{
  const drive = google.drive({ version: 'v3', auth });  
  drive.files.create({
      headers: {
            'Authorization': 'Bearer Authorize Token received when user loggedIn with google account',
            'Content-Type': "image/png",
      },
      resource: {
        'name': `sampledocc`
      },
      media:  {
        mimeType:"image/png",
        body: fs.createReadStream('./downloadFiles/4.png')
      },
      fields: 'id'
    }, async function (err, file)  {
      if (err)
      {
        // Handle error
        console.log(err,'Failed to upload');
      } else {
        console.log(err,'File uploaded successfully');
      }
    });
}

但是在共享和下载文件时我们都会遇到以下错误。

1)超出限制 2)未经授权的访问 3)您没有权限 4)凭证无效

我们已经在谷歌云账户中添加了账单详细信息,并激活了 Google Picker API、Google Drive Api 和重定向网址以及非限制范围,例如https://www.googleapis.com/auth/drive.file

但无法解决问题。我们询问了谷歌 oauth 团队,但他们在论坛/帮助中提到询问。所以我在论坛上发布了这个问题。你能分享或解决这个问题吗?

答案1

您遇到的无效凭据很可能是由于访问令牌已过期。您可以尝试使用长期刷新令牌刷新访问令牌,或引导用户通过OAuth 流程

对于权限,可能是用户没有编辑他们尝试访问的文件的权限。您可以在通过以下方式检索的元数据中检查用户访问级别:文件.获取当缺少权限时显示只读 UI。

对于您的超出限制错误,可能存在许多不同的配额,我建议您查看一下故障排除文档。您可能需要请求增加配额或更改请求方法。

相关内容