gpt4 book ai didi

google-drive-api - 用户在 Drive 中断开应用程序会导致 FILE 范围内的数据丢失

转载 作者:行者123 更新时间:2023-12-04 20:38:54 25 4
gpt4 key购买 nike

我遇到过这个问题几次,但始终无法指出它,将其归因于 GDAA's延迟,我的错误代码等......我终于想出了一个可以安全地重现它的场景,所以我想问一下那些知道这是我不理解的功能还是一个简单的错误的人。如果是后者,请指出我可以唠叨的地方。

我会在REST上讨论它为简单起见,API 的背景。

1/让我们有一个在 DRIVE_FILE 范围内运行的 Drive API 认证应用程序

com.google.api.services.drive.Drive svc = 
new Drive.Builder(
AndroidHttp.newCompatibleTransport(),
new GsonFactory(),
GoogleAccountCredential
.usingOAuth2( context, Collections.singletonList(DriveScopes.DRIVE_FILE))
).build();

2/在谷歌驱动器中创建一个文件(文件/文件夹)使用
svc.files().insert([METADATA], [CONTENT]).execute();

3/搜索您使用创建的对象
svc.files().list().setQ([QUERY]).setFields([FIELDS]).execute();

当应用程序运行时,用户通过通常的帐户选择/驱动器授权例程,一切都按预期工作。文件被创建、可见、可以被找到……直到用户通过

Settings > Manage Apps > Disconnect From Drive



在 drive.google.com 中。

之后,如果 Android 应用程序重新启动(并重新授权),则在撤销之前创建的任何对象都不可见。

可能是设计使然,我不知道。如果是这种情况,我找不到 Android 应用程序如何访问它之前创建的任何内容的方法。我当然可以创建另一个带有 DRIVE 范围的“维护”应用程序来解决这个问题,但是......

现在,如果是 GDAA ,情况变得更糟。不仅 GDAA 没有 DRIVE 范围来修复它,而且如果执行相同的步骤序列并且应用程序在撤销后立即创建文件/文件夹,GDAA 不会提示,但根本不会创建文件/文件夹。一段时间(分钟)后,重新授权弹出,但仍然无法找到同时创建的文件,撤销之前的所有内容也丢失到(创建者)应用程序中(它肯定在显然具有类似 DRIVE 范围的 Web 应用程序)。

谢谢你的耐心。

最佳答案

第一个问题是:

  • 用户通过以下方式撤销授权:设置 > 管理应用程序 > 从驱动器断开连接
  • 然后重新授权该应用程序
  • 此应用程序被授权在 DRIVE_FILE 范围内查看的文件不再被授权。

  • 这是 REST 和 Android API 的预期行为。

    我们认为用户不会凭直觉期望对所有先前授权的文件进行重新授权。用户可能不记得之前授权的文件,通知用户这些文件将要再次授权可能会造成混淆。

    第二个问题是 GDAA 在这种情况下创建文件夹的行为。我们目前不支持用于文件夹创建的 CompletionEvents,但这是我们将研究的内容。

    关于google-drive-api - 用户在 Drive 中断开应用程序会导致 FILE 范围内的数据丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30172915/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com