如何使用 Google Drive 重新授权 DVC 进行远程存储?

问题描述 投票:0回答:2

我正在使用 DVC 来跟踪我的机器学习项目中的数据和步骤。我正在尝试使用谷歌驱动器设置远程。这不一定很困难,我使用了 dvc 的文档

当我尝试使用时出现错误

dvc push

ERROR: unexpected error - Failed to authenticate GDrive: Access token refresh failed: invalid_grant: Token has been expired or revoked.

我第一次使用该命令时,我被重定向到谷歌驱动器登录页面,并且可以授予 dvc 编辑文件的权限。我想我忘记给它正确的权限,但如果我现在重新运行命令,我不会发送到登录页面。有谁知道如何再次登录 google Drive 并授予 dvc 正确的权限。

我已经尝试从我的项目中完全删除与 dvc 相关的所有内容,但这似乎没有帮助

dvcs dvc
2个回答
2
投票

要查找的内容在 Google Drive for DVC 页面的

gdrive_user_credentials_file
选项下进行了描述。

即,默认值为

$CACHE_HOME/pydrive2fs/{gdrive_client_id}/default.json
(除非指定了配置文件),其中每个平台的
CACHE_HOME
位置为:

macOS Linux(*典型) Windows
~/Library/Caches
~/.cache
%CSIDL_LOCAL_APPDATA%

您应该能够删除该文件并运行

dvc pull
dvc push
(或实际上涉及 DVC 访问远程存储的任何其他 DVC 命令)以再次生成该文件。

如果经常发生,您可以使用相同的选项

drive_user_credentials_file
来自定义该文件的位置。

$ dvc remote modify myremote \
      gdrive_user_credentials_file path/to/mycredentials.json

这里是关于刷新令牌为什么会过期的相关讨论。有一些选项(具有委派的服务帐户,或发布应用程序以使刷新令牌更永久,现在使用内置的 DVC 应用程序)。它们都有一定的优点和缺点。请在票上留言或在这里讨论。


0
投票

希望这还不算太晚。 我遇到了同样的问题。这是修复方法。

检查此位置是否有文件:

$CACHE_HOME/pydrive2fs/{gdrive_client_id}/default.json

此文件保存您的凭据。如果有这样的文件,它可能已损坏,删除它可以解决问题。

$CACHE_HOME 是:

~/Library/MacOS 缓存,

~/.cache 用于 Linux,

以及 Windows 的 %CSIDL_LOCAL_APPDATA%。

© www.soinside.com 2019 - 2024. All rights reserved.