Dropbox
路径指定为 remote:path
。
Dropbox 的路径可以按需设置深度,例如:
remote:directory/subdirectory
。
配置
Dropbox 的初始设置需要从 Dropbox 获取一个令牌,你需要在浏览器中完成此操作。rclone config
会引导你完成这个过程。
以下是一个如何创建名为 remote
的远程存储的示例。首先运行:
rclone config
这将引导你完成一个交互式的设置过程:
n) New remote
d) Delete remote
q) Quit config
e/n/d/q> n
name> remote
Type of storage to configure.
Choose a number from below, or type in your own value
[snip]
XX / Dropbox
\ "dropbox"
[snip]
Storage> dropbox
Dropbox App Key - leave blank normally.
app_key>
Dropbox App Secret - leave blank normally.
app_secret>
Remote config
Please visit:
https://www.dropbox.com/1/oauth2/authorize?client_id=XXXXXXXXXXXXXXX&response_type=code
Enter the code: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXXXXXXXX
Configuration complete.
Options:
- type: dropbox
- app_key:
- app_secret:
- token: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXX_XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Keep this "remote" remote?
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
配置
可参考 远程设置文档 来了解如何在没有可用互联网浏览器的机器上进行设置。
请注意,rclone 会在你的本地机器上运行一个 Web 服务器,用于收集 Dropbox 返回的令牌。这个服务器仅在打开浏览器到你获取返回验证码的这段时间内运行。它运行在 http://127.0.0.1:53682/
上,如果你正在运行主机防火墙,可能需要临时解除对它的阻止,或者使用手动模式。
设置完成后,你可以按以下方式使用它:
列出 Dropbox 顶级目录:
rclone lsd remote:
列出 Dropbox 中的所有文件:
rclone ls remote:
将本地目录复制到名为 backup 的 Dropbox 目录:
rclone copy /home/source remote:backup
商业版 Dropbox
rclone 支持商业版 Dropbox 和团队文件夹。
在使用商业版 Dropbox 时,remote:
和 remote:path/to/file
会指向你的个人文件夹。
如果你想查看团队文件夹,必须在路径中使用前导 /
,因此 rclone lsd remote:/
会指向根目录,并显示所有团队文件夹和你的用户文件夹。
然后你可以像这样使用团队文件夹:remote:/TeamFolder
和 remote:/TeamFolder/path/to/file
。
对于个人版 Dropbox 账户,前导 /
不会有任何作用,但会增加一次额外的 HTTP 事务,因此应避免使用。
修改时间和哈希值
Dropbox 支持修改时间,但设置修改时间的唯一方法是重新上传文件。
这意味着,如果你使用不支持 v2 API 和修改时间的旧版本 rclone 上传了数据,rclone 会决定上传所有旧数据以修复修改时间。如果你不希望发生这种情况,可以使用 --size-only
或 --checksum
标志来阻止它。
Dropbox 支持 其自身的哈希类型,所有传输都会检查此哈希值。
受限文件名的字符
字符 | 编码值 | 替换字符 |
---|---|---|
NUL | 0x00 | ␀ |
/ | 0x2F | / |
DEL | 0x7F | ␡ |
\ | 0x5C | \ |
文件名也不能以以下字符结尾。只有当这些字符是文件名的最后一个字符时才会被替换:
字符 | 编码值 | 替换字符 |
---|---|---|
SP | 0x20 | ␠ |
无效的 UTF - 8 字节也会被 替换,因为它们不能用于 JSON 字符串。
批量模式上传
在使用 Dropbox API 时,使用批量模式上传对于性能非常重要。有关更多信息,请参阅 Dropbox 性能指南。
rclone 可以使用 3 种模式进行上传。
–dropbox-batch-mode off
在此模式下,rclone 不会使用上传批量处理。这是 rclone v1.55 之前的默认模式。它的缺点是很可能会遇到 too_many_requests
错误,如下所示:
NOTICE: too_many_requests/.: Too many requests or write operations. Trying again in 15 seconds.
当 rclone 收到这些错误时,它必须等待 15 秒,有时甚至 300 秒才能继续,这会严重减慢传输速度。
特别是当 --transfers
参数设置得较大时,这种情况会更频繁发生,因此除非为了兼容性或排查问题,否则不建议使用此模式。
–dropbox-batch-mode sync
在此模式下,rclone 会将上传内容批量处理到 --dropbox-batch-size
指定的大小,然后一起提交。
使用此模式意味着你可以使用更高的 --transfers
参数(32 或 64 效果很好),而不会收到 too_many_requests
错误。
此模式可确保数据完全完整。
请注意,在使用此模式退出 rclone 时,可能会有一个暂停,因为 rclone 要完成最后一批上传。
–dropbox-batch-mode async
在此模式下,rclone 会将上传内容批量处理到 --dropbox-batch-size
指定的大小,然后一起提交。
但是,它不会等待批量处理的状态返回给调用者。这意味着 rclone 可以使用更大的批量大小(远大于 --transfers
),但代价是无法检查上传状态。
这种模式尤其在处理大量小文件时能提供最大的上传速度,但 rclone 无法检查文件是否正确上传。
如果你使用此模式,建议在传输完成后使用 “rclone check”。或者你可以先使用 --dropbox-batch-mode async
进行初始传输,然后再使用 --dropbox-batch-mode sync
(默认模式)进行最终传输。
请注意,在使用此模式退出 rclone 时,可能会有一个暂停,因为 rclone 要完成最后一批上传。
导出文件
Dropbox 中的某些文件是“可导出的”,例如 Dropbox Paper 文档。这些文件需要转换为另一种格式才能下载。通常有多种转换格式可供选择。
当 rclone 下载可导出文件时,它会根据 --dropbox-export-formats
设置选择要下载的格式。默认情况下,导出格式为 html,md
,这对于 Dropbox Paper 来说是合理的默认设置。
rclone 会选择导出格式列表中 Dropbox 支持的第一个格式 ID。如果列表中没有可用的格式,rclone 将选择 Dropbox 建议的默认格式。
rclone 会更改文件扩展名以对应导出格式。以下是一些扩展名映射的示例:
文件类型 | Dropbox 中的文件名 | rclone 中的文件名 |
---|---|---|
Paper | mydoc.paper | mydoc.html |
Paper 模板 | mydoc.papert | mydoc.papert.html |
其他 | mydoc | mydoc.html |
rclone 目前尚不支持“导入”可导出文件。
以下是 rclone 已知的支持导出扩展名。请注意,rclone 目前不支持此列表之外的其他格式,即使 Dropbox 支持它们。此外,Dropbox 可能会随时更改支持的格式列表。
格式 ID | 名称 | 描述 |
---|---|---|
html | HTML | HTML 文档 |
md | Markdown | Markdown 文本格式 |
标准选项
以下是 Dropbox 特有的标准选项。
–dropbox-client-id
OAuth 客户端 ID。 通常留空。
属性:
- 配置项:client_id
- 环境变量:RCLONE_DROPBOX_CLIENT_ID
- 类型:字符串
- 是否必需:否
–dropbox-client-secret
OAuth 客户端密钥。 通常留空。
属性:
- 配置项:client_secret
- 环境变量:RCLONE_DROPBOX_CLIENT_SECRET
- 类型:字符串
- 是否必需:否
高级选项
以下是 Dropbox 特有的高级选项。
–dropbox-token
OAuth 访问令牌,以 JSON 格式表示。
属性:
- 配置项:token
- 环境变量:RCLONE_DROPBOX_TOKEN
- 类型:字符串
- 是否必需:否
–dropbox-auth-url
认证服务器 URL。 留空则使用提供商的默认值。
属性:
- 配置项:auth_url
- 环境变量:RCLONE_DROPBOX_AUTH_URL
- 类型:字符串
- 是否必需:否
–dropbox-token-url
令牌服务器 URL。 留空则使用提供商的默认值。
属性:
- 配置项:token_url
- 环境变量:RCLONE_DROPBOX_TOKEN_URL
- 类型:字符串
- 是否必需:否
–dropbox-client-credentials
使用客户端凭证 OAuth 流程。 这将使用 RFC 6749 中描述的 OAUTH2 客户端凭证流程。
属性:
- 配置项:client_credentials
- 环境变量:RCLONE_DROPBOX_CLIENT_CREDENTIALS
- 类型:布尔值
- 默认值:false
–dropbox-chunk-size
上传块大小(< 150Mi)。 任何大于此大小的文件将以该大小的块进行上传。
请注意,块会在内存中进行缓冲(一次一个),以便 rclone 处理重试。将此值设置得更大将略微提高速度(在测试中,128 MiB 时最多可提高 10%),但会消耗更多内存。如果内存紧张,可以将其设置得更小。
属性:
- 配置项:chunk_size
- 环境变量:RCLONE_DROPBOX_CHUNK_SIZE
- 类型:SizeSuffix
- 默认值:48Mi
–dropbox-impersonate
在使用商业账户时模拟此用户。 请注意,如果你想使用模拟功能,在运行 “rclone config” 时应确保设置此标志,因为这会使 rclone 请求 “members.read” 范围,而通常情况下不会请求该范围。这是将成员的电子邮件地址查找为 Dropbox 在 API 中使用的内部 ID 所必需的。
使用 “members.read” 范围需要 Dropbox 团队管理员在 OAuth 流程中进行批准。
你必须使用自己的应用程序(设置自己的 client_id 和 client_secret)才能使用此选项,因为目前 rclone 的默认权限集不包括 “members.read”。在 v1.55 或更高版本普及后,可以添加此权限。
属性:
- 配置项:impersonate
- 环境变量:RCLONE_DROPBOX_IMPERSONATE
- 类型:字符串
- 是否必需:否
–dropbox-shared-files
指示 rclone 处理单个共享文件。 在此模式下,rclone 的功能极为有限 - 此模式仅支持列表(ls、lsl 等)操作和读取操作(例如下载)。所有其他操作将被禁用。
属性:
- 配置项:shared_files
- 环境变量:RCLONE_DROPBOX_SHARED_FILES
- 类型:布尔值
- 默认值:false
–dropbox-shared-folders
指示 rclone 处理共享文件夹。 当使用此标志且不指定路径时,仅支持列表操作,并且将列出所有可用的共享文件夹。如果你指定了路径,第一部分将被解释为共享文件夹的名称。然后 rclone 将尝试将此共享文件夹挂载到根命名空间。挂载成功后,rclone 将正常处理。此时,共享文件夹就像一个普通文件夹,所有正常操作都支持。
请注意,之后我们不会卸载共享文件夹,因此在首次使用特定共享文件夹后,可以省略 --dropbox-shared-folders
。
另请参阅 --dropbox-root-namespace
,了解处理共享文件夹的另一种方法。
属性:
- 配置项:shared_folders
- 环境变量:RCLONE_DROPBOX_SHARED_FOLDERS
- 类型:布尔值
- 默认值:false
–dropbox-pacer-min-sleep
API 调用之间的最小休眠时间。
属性:
- 配置项:pacer_min_sleep
- 环境变量:RCLONE_DROPBOX_PACER_MIN_SLEEP
- 类型:Duration
- 默认值:10ms
–dropbox-encoding
后端的编码方式。 有关更多信息,请参阅 概述中的编码部分。
属性:
- 配置项:encoding
- 环境变量:RCLONE_DROPBOX_ENCODING
- 类型:Encoding
- 默认值:Slash,BackSlash,Del,RightSpace,InvalidUtf8,Dot
–dropbox-root-namespace
指定一个不同的 Dropbox 命名空间 ID 作为所有路径的根。
属性:
- 配置项:root_namespace
- 环境变量:RCLONE_DROPBOX_ROOT_NAMESPACE
- 类型:字符串
- 是否必需:否
–dropbox-batch-mode
上传文件批量处理模式:sync|async|off。 这设置了 rclone 使用的批量处理模式。 有关详细信息,请参阅 主文档。 此选项有 3 种可能的值:
- off - 不进行批量处理
- sync - 批量上传并检查完成情况(默认)
- async - 批量上传但不检查完成情况
rclone 在退出时会关闭任何未完成的批量处理,这可能会导致退出时出现延迟。
属性:
- 配置项:batch_mode
- 环境变量:RCLONE_DROPBOX_BATCH_MODE
- 类型:字符串
- 默认值:“sync”
–dropbox-batch-size
上传批次中的最大文件数。
这设置了上传文件的批次大小。它必须小于 1000。
默认情况下,此值为 0,这意味着 rclone 将根据 batch_mode
的设置计算批次大小。
- batch_mode: async - 默认批次大小为 100
- batch_mode: sync - 默认批次大小与
--transfers
相同 - batch_mode: off - 不使用
rclone 在退出时会关闭任何未完成的批量处理,这可能会导致退出时出现延迟。
如果你要上传大量小文件,设置此选项是个好主意,因为这将大大提高上传速度。你可以使用 --transfers 32
来最大化吞吐量。
属性:
- 配置项:batch_size
- 环境变量:RCLONE_DROPBOX_BATCH_SIZE
- 类型:整数
- 默认值:0
–dropbox-batch-timeout
允许上传批次空闲的最长时间,之后将进行上传。
如果上传批次空闲时间超过此设置,则将进行上传。
默认值为 0,这意味着 rclone 将根据使用的 batch_mode
选择一个合理的默认值。
- batch_mode: async - 默认批次超时时间为 10 秒
- batch_mode: sync - 默认批次超时时间为 500 毫秒
- batch_mode: off - 不使用
属性:
- 配置项:batch_timeout
- 环境变量:RCLONE_DROPBOX_BATCH_TIMEOUT
- 类型:Duration
- 默认值:0s
–dropbox-batch-commit-timeout
等待批次完成提交的最长时间。
属性:
- 配置项:batch_commit_timeout
- 环境变量:RCLONE_DROPBOX_BATCH_COMMIT_TIMEOUT
- 类型:Duration
- 默认值:10 分 0 秒
–dropbox-description
远程存储的描述。
属性:
- 配置项:description
- 环境变量:RCLONE_DROPBOX_DESCRIPTION
- 类型:字符串
- 是否必需:否