Jottacloud

Jottacloud

Jottacloud 是一家挪威公司提供的云存储服务提供商,其数据中心位于挪威。除了在 jottacloud.com 上的官方服务外,它还为不同公司提供白标解决方案,例如:

  • 泰利亚(Telia)
    • 泰利亚云(cloud.telia.se)
    • 泰利亚天空(sky.telia.no)
  • 泰利2(Tele2)
    • 泰利2云(mittcloud.tele2.se)
  • 欧林姆(Onlime)
    • 欧林姆云存储(onlime.dk)
  • 埃尔乔普(Elkjøp,及其子公司):
    • 埃尔乔普云(cloud.elkjop.no)
    • 瑞典埃尔吉甘滕(cloud.elgiganten.se)
    • 丹麦埃尔吉甘滕(cloud.elgiganten.dk)
    • 吉甘蒂云(cloud.gigantti.fi)
    • 埃尔科云(cloud.elko.is)

此后端支持大多数白标版本,不过可能需要不同的身份验证设置,下面会详细介绍。

路径的指定格式为 remote:path

路径可以根据需要设置得很深,例如 remote:directory/subdirectory

身份验证类型

部分白标版本使用的身份验证方法与官方服务不同,因此在设置远程存储时,你必须选择正确的方法。

标准身份验证

官方服务(jottacloud.com)以及部分白标服务所使用的标准身份验证方法,要求你从服务网页界面的账户安全设置中生成一次性个人登录令牌。登录你的账户,进入“设置”,然后选择“安全”,或者使用 rclone 在配置远程存储时提供给你的直接链接:https://www.jottacloud.com/web/secure。向下滚动到“个人登录令牌”部分,然后点击“生成”按钮。请注意,如果你使用的是白标服务,可能无法使用该直接链接,你需要在其专用网页界面中找到相同的页面,而且该页面的位置可能与上述描述不同。

若要从多个 rclone 实例访问你的账户,你需要为每个实例配置一个单独的个人登录令牌。例如,你在一个位置使用 rclone 创建了一个 Jottacloud 远程存储,并将配置文件复制到另一个你也想运行 rclone 并访问相同远程存储的位置。那么你需要使用 config reconnect 命令为其中一个实例替换令牌,该命令要求你生成一个新的个人登录令牌并作为输入提供。如果你不这样做,令牌很容易被失效,导致两个实例都失败,并显示类似以下的错误消息:

oauth2: cannot fetch token: 400 Bad Request
Response: {"error":"invalid_grant","error_description":"Stale token"}

当这种情况发生时,你需要按照上述方法替换令牌,才能再次使用你的远程存储。

你已使用的所有个人登录令牌将在网页界面的“我的已登录设备”下列出,你可以在该列表的右侧点击“X”按钮来撤销单个令牌。

旧版身份验证

如果你使用的是某个白标版本(例如埃尔乔普的版本),可能无法生成 CLI 令牌。在这种情况下,你必须使用旧版身份验证。为此,在设置过程中询问是否使用旧版身份验证时选择“是”,并输入你的用户名和密码。其余的设置步骤与默认设置相同。

泰利亚云身份验证

与其他白标版本类似,泰利亚云不提供创建 CLI 令牌的选项,并且使用一种单独的身份验证流程,其中用户名是内部生成的。要设置 rclone 使用泰利亚云,请在设置过程中选择泰利亚云身份验证。其余的设置步骤与默认设置相同。

泰利2云身份验证

由于泰利2与康赫姆(Com Hem)的合并已经完成,此身份验证方法可用于原康赫姆云和泰利2云的客户,因为这些服务不支持创建 CLI 令牌,并且使用一种单独的身份验证流程,其中用户名是内部生成的。要设置 rclone 使用泰利2云,请在设置过程中选择泰利2云身份验证。其余的设置步骤与默认设置相同。

欧林姆云存储身份验证

欧林姆向丹麦客户出售了 Jottacloud 的访问权限,并提供本地化支持,但最近他们建立了自己的托管服务,将客户从 Jottacloud 服务器迁移到了自己的服务器上。

当然,这就需要使用他们的服务器进行身份验证,但在其他方面,其功能和架构似乎与 Jottacloud 相当。

要设置 rclone 使用欧林姆云存储,请在设置过程中选择欧林姆云身份验证。其余的设置步骤与默认设置相同。

配置

以下是一个使用默认设置创建名为 remote 的远程存储的示例。首先运行:

rclone config

这将引导你完成一个交互式设置过程:

No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> remote
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
[snip]
XX / Jottacloud
   \ (jottacloud)
[snip]
Storage> jottacloud
Edit advanced config?
y) Yes
n) No (default)
y/n> n
Option config_type.
Select authentication type.
Choose a number from below, or type in an existing string value.
Press Enter for the default (standard).
   / Standard authentication.
 1 | Use this if you're a normal Jottacloud user.
   \ (standard)
   / Legacy authentication.
 2 | This is only required for certain whitelabel versions of Jottacloud and not recommended for normal users.
   \ (legacy)
   / Telia Cloud authentication.
 3 | Use this if you are using Telia Cloud.
   \ (telia)
   / Tele2 Cloud authentication.
 4 | Use this if you are using Tele2 Cloud.
   \ (tele2)
   / Onlime Cloud authentication.
 5 | Use this if you are using Onlime Cloud.
   \ (onlime)
config_type> 1
Personal login token.
Generate here: https://www.jottacloud.com/web/secure
Login Token> <your token here>
Use a non-standard device/mountpoint?
Choosing no, the default, will let you access the storage used for the archive
section of the official Jottacloud client. If you instead want to access the
sync or the backup section, for example, you must choose yes.
y) Yes
n) No (default)
y/n> y
Option config_device.
The device to use. In standard setup the built-in Jotta device is used,
which contains predefined mountpoints for archive, sync etc. All other devices
are treated as backup devices by the official Jottacloud client. You may create
a new by entering a unique name.
Choose a number from below, or type in your own string value.
Press Enter for the default (DESKTOP-3H31129).
 1 > DESKTOP-3H31129
 2 > Jotta
config_device> 2
Option config_mountpoint.
The mountpoint to use for the built-in device Jotta.
The standard setup is to use the Archive mountpoint. Most other mountpoints
have very limited support in rclone and should generally be avoided.
Choose a number from below, or type in an existing string value.
Press Enter for the default (Archive).
 1 > Archive
 2 > Shared
 3 > Sync
config_mountpoint> 1
Configuration complete.
Options:
- type: jottacloud
- configVersion: 1
- client_id: jottacli
- client_secret:
- tokenURL: https://id.jottacloud.com/auth/realms/jottacloud/protocol/openid-connect/token
- token: {........}
- username: 2940e57271a93d987d6f8a21
- device: Jotta
- mountpoint: Archive
Keep this "remote" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

配置完成后,你可以像这样使用 rclone

列出 Jottacloud 顶级目录

rclone lsd remote:

列出 Jottacloud 中的所有文件

rclone ls remote:

将本地目录复制到 Jottacloud 中名为 backup 的目录

rclone copy /home/source remote:backup

设备和挂载点

官方 Jottacloud 客户端会为你安装它的每台计算机注册一个设备,并在用户界面的备份部分显示这些设备。对于你选择备份的每个文件夹,它会在该设备内创建一个挂载点。

一个名为 Jotta 的内置设备比较特殊,它包含存档(Archive)、同步(Sync)等挂载点,用于官方客户端的相应功能。

在大多数情况下,你会希望使用标准的 Jotta/Archive 设备/挂载点。不过,你可能想访问官方客户端提供的同步或备份功能中的文件,因此 rclone 在配置过程中提供了选择其他设备和挂载点的选项。

你可以创建新的设备和挂载点。除了内置的 Jotta 设备外,所有设备都会被官方 Jottacloud 客户端视为备份设备,其上的挂载点是单独的备份集。

对于内置的 Jotta 设备,只能选择现有的内置挂载点。除了上述的存档(Archive)和同步(Sync)挂载点外,它可能还包含其他几个挂载点,如:最新(Latest)、链接(Links)、共享(Shared)和回收站(Trash)。所有这些都是特殊的挂载点,其内部表示与“常规”挂载点不同。rclone 对它们的支持非常有限。一般来说,除非你知道自己在做什么,否则应避免使用这些挂载点。

–fast-list

此后端支持 --fast-list,它允许你以使用更多内存为代价来减少事务次数。有关更多详细信息,请参阅 rclone 文档

请注意,Jottacloud 的实现总是只使用一个 API 请求来获取整个列表,因此对于大型文件夹,在显示第一个结果之前可能会有较长的等待时间。

另请注意,从 rclone 1.58 版本及更高版本开始,使用 --fast-list 时,MIME 类型 和元数据项 utime 的信息将不可用。

修改时间和哈希值

Jottacloud 允许将对象的修改时间精确设置到 1 秒。这些时间将用于检测对象是否需要同步。

Jottacloud 支持 MD5 类型的哈希值,因此你可以使用 --checksum 标志。

请注意,Jottacloud 在上传前需要 MD5 哈希值,因此如果源文件没有 MD5 校验和,文件将在上传前临时缓存在磁盘上(缓存位置由 –temp-dir 指定)。 小文件将缓存在内存中 - 请参阅 –jottacloud-md5-memory-limit 标志。 从本地磁盘上传时,源文件的校验和始终可用,因此这种情况不适用。从 rclone 1.52 版本开始,加密远程存储也是如此(在旧版本中,加密后端不会为从本地磁盘上传的文件计算哈希值,因此 Jottacloud 后端必须按上述方式进行计算)。

受限文件名的字符

除了 默认受限字符集 之外,以下字符也会被替换:

字符 编码值 替换字符
" 0x22
* 0x2A
: 0x3A
< 0x3C
> 0x3E
? 0x3F
| 0x7C

无效的 UTF-8 字节也会被 替换,因为它们不能用于 XML 字符串。

删除文件

默认情况下,rclone 在删除文件时会将所有文件发送到回收站。这些文件将在 30 天后自动永久删除。你可以使用 –jottacloud-hard-delete 标志绕过回收站并立即永久删除文件,或者设置等效的环境变量。 cleanup 命令支持清空回收站。

版本管理

Jottacloud 支持文件版本控制。当 rclone 上传文件的新版本时,它会创建一个新的版本。 目前,rclone 仅支持检索当前版本,但可以通过 Jottacloud 网站访问旧版本。

可以通过 --jottacloud-no-versions 选项禁用版本控制。这是通过在上传新版本之前删除远程文件来实现的。如果上传失败,远程存储中将不会有该文件的任何版本。

配额信息

要查看你当前的配额,可以使用 rclone about remote: 命令,该命令将显示你的使用限制(如果不是无限制的话)和当前使用情况。

标准选项

以下是 Jottacloud 特定的标准选项。

–jottacloud-client-id

OAuth 客户端 ID。

通常留空。

属性:

  • 配置项:client_id
  • 环境变量:RCLONE_JOTTACLOUD_CLIENT_ID
  • 类型:字符串
  • 是否必需:否

–jottacloud-client-secret

OAuth 客户端密钥。

通常留空。

属性:

  • 配置项:client_secret
  • 环境变量:RCLONE_JOTTACLOUD_CLIENT_SECRET
  • 类型:字符串
  • 是否必需:否

高级选项

以下是 Jottacloud 特定的高级选项。

–jottacloud-token

OAuth 访问令牌,以 JSON 格式存储。

属性:

  • 配置项:token
  • 环境变量:RCLONE_JOTTACLOUD_TOKEN
  • 类型:字符串
  • 是否必需:否

–jottacloud-auth-url

认证服务器 URL。

留空则使用提供商的默认值。

属性:

  • 配置项:auth_url
  • 环境变量:RCLONE_JOTTACLOUD_AUTH_URL
  • 类型:字符串
  • 是否必需:否

–jottacloud-token-url

令牌服务器 URL。

留空则使用提供商的默认值。

属性:

  • 配置项:token_url
  • 环境变量:RCLONE_JOTTACLOUD_TOKEN_URL
  • 类型:字符串
  • 是否必需:否

–jottacloud-client-credentials

使用客户端凭证 OAuth 流程。

这将使用 RFC 6749 中描述的 OAUTH2 客户端凭证流程。

属性:

  • 配置项:client_credentials
  • 环境变量:RCLONE_JOTTACLOUD_CLIENT_CREDENTIALS
  • 类型:布尔值
  • 默认值:false

–jottacloud-md5-memory-limit

如果需要计算 MD5,大于此大小的文件将被缓存在磁盘上。

属性:

  • 配置项:md5_memory_limit
  • 环境变量:RCLONE_JOTTACLOUD_MD5_MEMORY_LIMIT
  • 类型:大小后缀
  • 默认值:10Mi

–jottacloud-trashed-only

仅显示回收站中的文件。

这将以原始目录结构显示已删除的文件。

属性:

  • 配置项:trashed_only
  • 环境变量:RCLONE_JOTTACLOUD_TRASHED_ONLY
  • 类型:布尔值
  • 默认值:false

–jottacloud-hard-delete

永久删除文件,而不是将其放入回收站。

属性:

  • 配置项:hard_delete
  • 环境变量:RCLONE_JOTTACLOUD_HARD_DELETE
  • 类型:布尔值
  • 默认值:false

–jottacloud-upload-resume-limit

如果上传失败,大于此大小的文件可以恢复上传。

属性:

  • 配置项:upload_resume_limit
  • 环境变量:RCLONE_JOTTACLOUD_UPLOAD_RESUME_LIMIT
  • 类型:大小后缀
  • 默认值:10Mi

–jottacloud-no-versions

通过删除文件并重新创建文件而不是覆盖它们来避免服务器端版本控制。

属性:

  • 配置项:no_versions
  • 环境变量:RCLONE_JOTTACLOUD_NO_VERSIONS
  • 类型:布尔值
  • 默认值:false

–jottacloud-encoding

后端的编码方式。

有关更多信息,请参阅 概述中的编码部分

属性:

  • 配置项:encoding
  • 环境变量:RCLONE_JOTTACLOUD_ENCODING
  • 类型:编码方式
  • 默认值:斜杠、小于大于号、双引号、冒号、问号、星号、竖线、删除符、控制字符、无效 UTF-8、点号

–jottacloud-description

远程存储的描述。

属性:

  • 配置项:description
  • 环境变量:RCLONE_JOTTACLOUD_DESCRIPTION
  • 类型:字符串
  • 是否必需:否

元数据

Jottacloud 对元数据的支持有限,目前仅支持一组扩展的时间戳。

以下是 Jottacloud 后端可能的系统元数据项。

名称 说明 类型 示例 是否只读
btime 文件创建时间,从 rclone 元数据中读取 RFC 3339 2006-01-02T15:04:05.999999999Z07:00
content-type MIME 类型,也称为媒体类型 字符串 text/plain
mtime 最后修改时间,从 rclone 元数据中读取 RFC 3339 2006-01-02T15:04:05.999999999Z07:00
utime 最后上传时间,即当前版本创建的时间,由后端生成 RFC 3339 2006-01-02T15:04:05.999999999Z07:00

有关更多信息,请参阅 元数据 文档。

限制

请注意,Jottacloud 不区分大小写,因此你不能同时拥有名为 “Hello.doc” 和 “hello.doc” 的文件。

Jottacloud 文件名中不能包含很多字符。Rclone 会将这些文件名映射为看起来相同的 Unicode 等效字符。例如,如果文件中有一个 ?,它将被映射为 ?。

Jottacloud 仅支持长度不超过 255 个字符的文件名。

故障排除

Jottacloud 在处理已删除的文件和文件夹时表现出一些不一致的行为,这可能会导致复制、移动和目录移动操作在之前已删除的路径上失败。在这种情况下,清空回收站可能会有所帮助。