rclone config update

rclone config update

更新现有远程中的选项。

概要

更新现有远程的选项。选项应以 key value 对的形式传递,或者以 key=value 的形式传递。

例如,要更新名为 myremote 的远程的 env_auth 字段,你可以这样做:

rclone config update myremote env_auth true
rclone config update myremote env_auth=true

如果远程使用 OAuth,令牌将被更新。如果你不需要更新令牌,可以添加一个额外的参数,如下所示:

rclone config update myremote env_auth=true config_refresh_token=false

请注意,如果配置过程通常会询问一个问题,那么将采用默认值(除非使用 --non-interactive 标志)。每次发生这种情况时,rclone 都会打印或在调试信息中显示一条消息,说明如何影响所采用的值。

如果传递的任何参数是密码字段,那么 rclone 会在将它们放入配置文件之前自动对其进行加密(如果它们尚未加密)。

注意:如果密码参数长度为 22 个字符或更长,并且仅由 base64 字符组成,那么 rclone 可能会混淆密码是否已经加密,并将未加密的密码放入配置文件中。如果你想 100% 确保密码被加密,请使用 --obscure 标志;如果你 100% 确定已经传递了加密的密码,请使用 --no-obscure 标志。你也可以使用 rclone config password 命令来设置加密的密码。

--non-interactive 标志供希望自行配置 rclone 的应用程序使用,而不是使用 rclone 基于文本的配置问题。如果设置了此标志,并且 rclone 需要询问用户一个问题,将返回一个包含问题的 JSON 数据块。

它看起来会像这样(删除了一些无关的细节):

{
    "State": "*oauth-islocal,teamdrive,,",
    "Option": {
        "Name": "config_is_local",
        "Help": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\n",
        "Default": true,
        "Examples": [
            {
                "Value": "true",
                "Help": "Yes"
            },
            {
                "Value": "false",
                "Help": "No"
            }
        ],
        "Required": false,
        "IsPassword": false,
        "Type": "bool",
        "Exclusive": true,
    },
    "Error": "",
}

Option 的格式与 rclone config providers 返回的格式相同。应该将问题询问用户,并将答案作为 --result 选项与 --state 参数一起返回给 rclone。

Option 的键使用方式如下:

  • Name - 变量名 - 展示给用户
  • Help - 帮助文本。硬换行限制为 80 个字符。任何 URL 应该是可点击的。
  • Default - 默认值 - 如果用户只想使用默认值,则返回此值。
  • Examples - 用户应该能够从中选择一个
  • Required - 值应该非空
  • IsPassword - 值是一个密码,应该按此方式进行编辑
  • Type - 值的类型,例如 boolstringint
  • Exclusive - 如果设置,则只允许从 Examples 中选择,不允许自由输入
  • 无关键 ProviderShortOptHideNoPrefixAdvanced

如果 Error 被设置,则应该在向用户提问的同时显示该错误信息。

rclone config update name --continue --state "*oauth-islocal,teamdrive,," --result "true"

请注意,使用 --continue 时,所有密码都应该以明文形式传递(不进行加密)。每次调用 --continue 时,都应该传入任何默认配置值。

在非交互式过程结束时,rclone 将返回一个 State 为空字符串的结果。

如果传递了 --all 参数,rclone 将询问所有配置问题,而不仅仅是配置后的问题。任何参数都将像往常一样用作问题的默认值。

请注意,rclone 源代码中的 bin/config.py 以一种易于阅读的方式实现了这个协议。

rclone config update name [key value]+ [flags]

Options

      --all               询问完整的配置问题集
      --continue          使用答案继续配置过程
  -h, --help              显示 update 命令的帮助信息
      --no-obscure        强制不加密任何密码
      --non-interactive   不与用户交互,直接返回问题
      --obscure           强制加密任何密码
      --result string     结果 - 与 --continue 一起使用
      --state string      状态 - 与 --continue 一起使用

有关此处未列出的全局选项,请参阅 全局标志页面

另请参见