使用 Google Drive API 更新文件错误 403

2024-01-18

目前,我使用 Google Cloud 的 GWT 应用程序遇到问题。

我实际上有一段代码,允许您使用谷歌驱动器应用程序上传文件。 除此之外,随着谷歌的更新,谷歌驱动器上的文件不再可能有多个父级,我们可以在这里看到:

https://cloud.google.com/blog/products/g-suite/simplifying-google-drives-folder-struct-and-sharing-models https://cloud.google.com/blog/products/g-suite/simplifying-google-drives-folder-structure-and-sharing-models

“ 您只能为尚无父项的项目添加父项。这会影响children.insert (v2)、files.update (v2 / v3) 和parents.insert (v2) 端点。您可以使用新的canAddMyDriveParent 能够检查某个项目当前是否没有父项以及用户是否有足够的访问权限来为该项目添加父项。”

所以我有以下代码:

service.files().update(fileId, file).execute();

这会产生一个错误:

{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "Increasing the number of parents is not allowed",
    "reason" : "cannotAddParent"
  } ],
  "message" : "Increasing the number of parents is not allowed"
}

但我不知道如何上传文件而不出现此错误。

事实上,我不知道如何创建新的父文件夹,或者是否可以在没有父文件夹的情况下上传。 如果有人可以帮助我,任何帮助将不胜感激!

非常感谢!


今年(2020 年)年初,Google 推出了 API,该 API 已发生变化捷径 https://cloud.google.com/blog/products/g-suite/simplifying-google-drives-folder-structure-and-sharing-models:

您只能为尚无父级的项目添加父级。这会影响children.insert (v2)、files.update (v2 / v3) 和parents.insert (v2) 端点。您可以使用新的 canAddMyDriveParent 功能来检查项目当前是否没有父项以及用户是否有足够的访问权限来为该项目添加父项。

该规定于 3 月份宣布,但自 9 月 30 日起实施。

你猜对了:快捷方式 https://developers.google.com/drive/api/v3/shortcuts#create_a_shortcut是在不同文件夹中复制文件的方法,但考虑到它们与原始文件具有不同的特征,并且它们不是“副本”。 MimeType 是application/vnd.google-apps.shortcut .

创建快捷方式的示例:

file_metadata = {
    'name': 'Project Plan',
    'mimeType': 'text/plain'
}
file = drive_service.files().create(body=file_metadata, fields='id').execute()
print('File ID: %s' % file.get('id'))
shortcut_metadata = {
     'Name': 'Shortcut to Project Plan',
     'mimeType': 'application/vnd.google-apps.shortcut',
     'shortcutDetails': {
        'targetId': file.get('id')
     }
}
shortcut = drive_service.files().create(body=shortcut_metadata,
                                    fields='id,shortcutDetails').execute()
print('File ID: %s, Shortcut Target ID: %s, Shortcut Target MIME type: %s' % (
    shortcut.get('id'),
    shortcut.get('shortcutDetails').get('targetId'),
    shortcut.get('shortcutDetails').get('targetMimeType')))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Google Drive API 更新文件错误 403 的相关文章

随机推荐

  • FirebaseApp:Firebase API 初始化失败

    我遇到了由 Firebase Api 引起的错误 这是错误日志 Firebase API initialization failure java lang reflect InvocationTargetException Caused b
  • 哪个 C# 程序集包含 Invoke?

    另一个问题 为什么 VS10 如此热衷于抱怨 Invoke 在我不断追求让我的应用程序工作成为世界上最好的 C 程序员的过程中 我认为线程是一件好事 MSDN 有一篇关于制作的有用文章对控件的线程安全调用 http msdn microso
  • 传递对象时 Axios POST 请求不起作用

    我正在尝试使用 axios 在 vue js 应用程序中向本地 API 发出发布请求 并且响应返回空数据 使用 Postman 工具 API 上的 post 请求工作正常 下面是我的代码 var the data title This is
  • WebClient DownloadString 不返回任何内容

    我想从海盗湾的搜索查询中获取源代码 我的代码中有这个 但它不返回任何内容 WebClient webpage new WebClient string source webpage DownloadString http thepirate
  • FlatList 在添加新数据时重新渲染所有数据

    我测试了 FlatList 这是我想做的 1 使用componentDidmount获取10条初始数据2 向下滚动可获取另外 10 条数据 App js import React from react import View SafeAre
  • 如何防止 Typescript 查看父 node_modules 文件夹

    我在另一个 NPM 包中有一个 NPM 包 子包有一些代码 例如import range from iter tools 即使子 package json 没有依赖项iter tools I am NOT出现任何类型的 Typescript
  • 使用Visual Studio 2010开发nodejs

    是否可以使用VS2010开发NodeJS应用程序 我说的是普通的 Javascript 而不是 Azure 或任何类似的花哨的东西 我只是想使用 VS2010 作为 Javascript 编辑器 因为我有 NET 背景 而且我对它非常满意
  • 允许在数字字段中使用逗号

    这是一个非常愚蠢的问题 我觉得我一定错过了一些简单的事情 我有一个表格quantity场地 人们在输入数量时不断输入逗号 例如 他们输入12 000表示一万二千 所以我想在保存数量之前去掉逗号 12000在示例中 转换为数据库中的整数列 到
  • 提高 NumPy 数组上的操作性能

    我使用 numpy delete 从 while 循环内的数组中删除元素 仅当数组不为空时 此 while 循环才有效 这段代码工作正常但速度变慢 当数组有超过 1e6 个元素时 效果会显着提高 这是一个例子 while array sha
  • 共享自定义 NestJS 模块给出“不是当前处理模块的一部分”错误

    我们正在为不同的服务运行几个 NestJS 应用程序 它们都共享一些通用代码 在我们的例子中是 ConfigModule 和 CacheModule 我想将它们分解并放入公司 通用 npm 包中 以最大程度地减少代码复制 但我遇到了一个错误
  • JavaScript 中的反射

    我一直在研究 JavaScript 中反射的可能性 我已经有一个简单的反射器 它可以列出对象 函数的成员 如下所示 window Foo Bar Test function this x 32 this hello Hello World
  • 获取node.js中的模块名称

    有谁知道如何获取node js javascript中模块的名称 所以可以说你愿意 var RandomModule require fs console log RandomModule name gt fs 如果您尝试跟踪依赖项 可以尝
  • 打开已关闭的 SqlConnection

    关闭和打开同一个 SqlConnection 对象而不是每次都创建新对象是否存在任何问题 例如 SqlConnection conn new SqlConnection ConnectionString conn Open Some wor
  • 用于从特定文件夹下载文件的Servlet?

    我是JAVA技术的新手 尤其是Servlet 我需要制作一个Web应用程序项目 其中有一个上传和下载文件到 从服务器 tomcat 我已经有一个上传servlet 工作正常 我还有一个下载 servlet 在互联网上找到 但问题是这个 se
  • 如何使用单个提交按钮在一页中提交 2 个表单

    我创建了一个包含两个表单的 php 页面 但我希望这两个表单都只有一个提交按钮 表格有ids firstform secondform 我尝试过其他脚本 但它们实际上不起作用 下面是我的代码
  • RibbonControlsLibrary - 如何禁用最小化?

    如何从 RibbonControlsLibrary 禁用功能区控件的最小化 以下内容禁用了双击选项卡标题和上下文菜单上的 最小化功能区 public class ExRibbon Ribbon public override void On
  • 可投放的 可投放的

    我有这个标记 ul class cat ul class cat ul ul class cat ul ul 我做了这件事 ul cat droppable drop function alert this attr id 它总是写 你好
  • Cruise Control .net:使用包并显示 NUnit 结果

    经过一番困惑后 我终于成功地在我们的构建服务器上部署了 Cruise Control net 的实例 它每隔几分钟轮询一次服务器 并且仅在检测到 svn 存储库中的更改时才进行构建 对于构建和测试 我结合使用了 MSBuild 和 NUni
  • 是否可以在“拉模式”下运行剧本?

    我有一些在主主机上启动并在远程主机上运行特定操作的剧本 这是一种 推送 模式 活动由主控主机发起 我的几台主机在给定时间停机 并且在这种状态下显然无法运行剧本 这会导致主机是最新的 而其他主机则不是 为了解决这个问题 我可以以常规方式在主主
  • 使用 Google Drive API 更新文件错误 403

    目前 我使用 Google Cloud 的 GWT 应用程序遇到问题 我实际上有一段代码 允许您使用谷歌驱动器应用程序上传文件 除此之外 随着谷歌的更新 谷歌驱动器上的文件不再可能有多个父级 我们可以在这里看到 https cloud go