当前位置: 首页 > 知识库问答 >
问题:

Google Drive API-存储在GSuite共享驱动器中的文件(仅限)出现404错误

郭永安
2023-03-14

我的应用程序有scopes驱动器。文件,驱动器。只读和驱动。元数据。只读。使用https://github.com/googleapis/google-api-php-clientv2。2.2

当作为Google Drive用户进行身份验证时,它可以很好地获取文件,但仅当这些文件由另一个用户(或同一用户)拥有时。

存储在共享驱动器(谷歌办公套件业务功能)上并与用户共享的文件会导致404错误:

 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "notFound",
    "message": "File not found: 1gasqkgWcabla8sksT5FUtZGzlfIwGbc_aI4g2gl9bla.",
    "locationType": "parameter",
    "location": "fileId"
   }
  ],
  "code": 404,
  "message": "File not found: 1gasqkgWcabla8sksT5FUtZGzlfIwGbc_aI4g2gl9bla."
 }

我已经通过驱动器/文档等验证了该用户确实可以读取该文件。

我已经进入了应用编程接口控制台,并检查了驱动器用户界面集成下的“共享驱动器支持”——这没有什么区别。它也没有帮助增加更广泛的“驱动”范围。

共有1个答案

居星阑
2023-03-14

经过测试,我发现了同样的问题。

当我试图从共享驱动器获取带有以下HTTP请求的文件时

GET /drive/v3/files/<ID-file> HTTP/1.1
Host: www.googleapis.com
Content-length: 0
Authorization: Bearer <access Token>

我和你犯了同样的错误:

{
  "error": {
    "code": 404, 
    "message": "File not found: 1DIM-vS4058e0X5eutNmOqSr3z0rA1Nqh.", 
    "errors": [
      {
        "locationType": "parameter", 
        "domain": "global", 
        "message": "File not found: 1DIM-vS4058e0X5eutNmOqSr3z0rA1Nqh.", 
        "reason": "notFound", 
        "location": "fileId"
      }
    ]
  }
}

但是在阅读留档时,很明显,您需要将support portsAllDrives参数包含到HTTP请求中。

现在添加supportsAllDrives=true我的请求如下:

GET /drive/v3/files/<File ID>?supportsAllDrives=true HTTP/1.1
Host: www.googleapis.com
Content-length: 0
Authorization: Bearer <access Token>>

然后我在响应中检索文件:

{
  "mimeType": "image/jpeg", 
  "kind": "drive#file", 
  "name": "file.jpg", 
  "driveId": "<Drive Id>", 
  "teamDriveId": "<Team Drive ID>", 
  "id": "<File ID>"
}
 类似资料:
  • 我想在我的帐户下列出Google Drive共享驱动器。我正在使用他们的驱动器:list API来实现这一点。在控制台中运行它成功了,但给了我一个空的驱动器列表,我找不到任何关于原因的线索。 我查看了他们关于实现共享驱动器支持的文档,但这些文档都与列出驱动器无关。 我检查过的东西: 我登录到我认为我是的帐户。我使用关于API来确认。 我已经为控制台应用程序授予了必要的范围(Google API E

  • 我有一个网络应用程序,在localhost工作良好,但当我上传到cboard主页显示良好,但所有其他路线我得到错误404。到目前为止,我所做的(1)在根文件夹中创建文件夹myapp(2)复制所有公共文件到public_html(3)修改index.php两行到 在我的路线上我有 在我的链接中我有

  • 我正在尝试Google Drive API V3。 拥有一些共享驱动器文件夹的访问权限,并且是所有这些资源的管理员,我想获取一个通过查询筛选的特定文件夹。 出于任何原因,当我尝试按照留档建议插入查询时,它会响应一个错误,这个错误不是很描述性,也不利于调试: 此外,如果我不带条件地执行查询,则响应会成功,并显示整个共享驱动器: 有什么帮助吗? 谢谢

  • 关于在共享驱动器下列出文件夹的问题。 我能够获得成功的响应,同时调用下面的API通过传递查询参数为: includeTeamDriveItems=true API:https://developers.google.com/drive/api/v3/reference/files/list?apix_params={包含TeamDriveItem: true, q:0AATe_aghhsdfvbd

  • 问题内容: jenkins中的共享库文件在作业开始时加载,它存储在哪里?我正在尝试访问存储在共享库中的dockerfile,我需要在dockerbuild命令中提供的路径。有什么办法可以找出共享库文件在jenkins中的装载位置? 问题答案: 如果共享库是从SCM加载的,并且您的工作空间路径是,则将签出到或类似副本(如果该路径被另一个并发构建占用,则可能后缀数字)。 ,如果我理解正确,您是否不想在