Sia

Sia(sia.tech)是一个基于区块链技术的去中心化云存储平台。借助 rclone,你可以像使用其他远程文件系统一样使用它,也可以将 Sia 文件夹挂载到本地。其背后的技术涉及许多新概念,如 Siacoin 与钱包、区块链与共识机制、租赁与托管等。如果你是新手,最好先通过他们出色的支持文档熟悉相关内容。

简介

在使用 rclone 与 Sia 配合之前,你需要在本地计算机或本地网络(如 NAS)上运行一份 Sia-UIsiad(Sia 守护进程)。请遵循入门指南进行安装。

rclone 通过 HTTP API 与 Sia 守护进程通信,从而与 Sia 网络进行交互,该 API 通常在端口 9980 上可用。默认情况下,你会在同一台计算机上本地运行守护进程,因此可以安全地将 API 密码留空(API URL 将为 http://127.0.0.1:9980,这样外部无法访问)。

但是,如果你想访问运行在其他节点上的 Sia 守护进程,例如由于内存限制,或者你想在多个 rclone 和 Sia-UI 实例之间共享一个守护进程,你需要做更多准备:

  • 确保你直接安装了 Sia 守护进程,或者将其安装在 Docker 容器 中,因为 Sia-UI 本身不支持这种模式。
  • 在可外部访问的端口上运行它,例如在守护进程命令行中提供 --api-addr :9980--disable-api-security 参数。
  • 通过环境变量 SIA_API_PASSWORD 或守护进程目录中名为 apipassword 的文本文件为 siad 守护进程设置 API 密码。
  • 从上述位置获取密码并设置 rclone 后端选项 api_password

注意事项:

  1. 如果你的钱包已锁定,rclone 无法自动解锁。你应该事先使用 Sia-UI 或通过命令行 siac wallet unlock 解锁。或者,你可以通过设置环境变量 SIA_WALLET_PASSWORD 来运行 siad,使其在启动时自动解锁你的钱包。
  2. 如果 siadSIA_DIR 目录中找不到 SIA_API_PASSWORD 变量或 apipassword 文件,它将生成一个随机密码,并将其存储在 Unix 系统下 YOUR_HOME/.sia/ 目录中的 apipassword 文本文件中,或者 Windows 系统下 C:\Users\YOUR_HOME\AppData\Local\Sia\apipassword 文件中。在 rclone 中配置密码时请记住这一点。
  3. 不使用 API 密码使用 siad 的唯一方法是在 本地主机 上使用命令行参数 --authorize-api=false 运行它,但这不安全,强烈不建议 这样做。

配置

以下是如何创建一个名为 mySiasia 远程存储的示例。首先,运行:

 rclone config

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

No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> mySia
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
...
29 / Sia Decentralized Cloud
   \ "sia"
...
Storage> sia
Sia daemon API URL, like http://sia.daemon.host:9980.
Note that siad must run with --disable-api-security to open API port for other hosts (not recommended).
Keep default if Sia daemon runs on localhost.
Enter a string value. Press Enter for the default ("http://127.0.0.1:9980").
api_url> http://127.0.0.1:9980
Sia Daemon API Password.
Can be found in the apipassword file located in HOME/.sia/ or in the daemon directory.
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank (default)
y/g/n> y
Enter the password:
password:
Confirm the password:
password:
Edit advanced config?
y) Yes
n) No (default)
y/n> n
--------------------
[mySia]
type = sia
api_url = http://127.0.0.1:9980
api_password = *** ENCRYPTED ***
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

Once configured, you can then use rclone like this:

  • List directories in top level of your Sia storage
rclone lsd mySia:
  • List all the files in your Sia storage
rclone ls mySia:
  • Upload a local directory to the Sia directory called backup
rclone copy /home/source mySia:backup

标准选项

以下是 Sia(Sia 去中心化云存储)特有的标准选项。

–sia-api-url

Sia 守护进程的 API URL,例如 http://sia.daemon.host:9980

请注意,若要为其他主机开放 API 端口,siad 必须使用 --disable-api-security 选项运行(不建议这样做)。 如果 Sia 守护进程在本地主机上运行,请使用默认值。

属性:

  • 配置项:api_url
  • 环境变量:RCLONE_SIA_API_URL
  • 类型:字符串
  • 默认值:“http://127.0.0.1:9980”

–sia-api-password

Sia 守护进程的 API 密码。

可以在 HOME/.sia/ 目录下的 apipassword 文件中或守护进程目录中找到该密码。

注意:输入的密码必须进行加密处理 - 请参阅 rclone obscure

属性:

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

高级选项

以下是 Sia(Sia 去中心化云存储)特有的高级选项。

–sia-user-agent

Siad 用户代理

出于安全考虑,Sia 守护进程默认要求使用 Sia-Agent 用户代理。

属性:

  • 配置项:user_agent
  • 环境变量:RCLONE_SIA_USER_AGENT
  • 类型:字符串
  • 默认值:“Sia-Agent”

–sia-encoding

后端的编码方式。

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

属性:

  • 配置项:encoding
  • 环境变量:RCLONE_SIA_ENCODING
  • 类型:编码方式
  • 默认值:斜杠、问号、井号、百分号、删除符、控制字符、无效 UTF-8、点号

–sia-description

远程存储的描述。

属性:

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

限制

  • 不支持修改时间
  • 不支持校验和
  • 不支持 rclone about 命令
  • 目前 rclone 只能与 SiadSia-UI 配合使用, 暂不支持 SkyNet 守护进程
  • Sia 不允许文件名中包含控制字符或问号、井号等符号。rclone 会自动为你 编码 这些字符,但你最好了解这一点。