跳到主要内容
博客计算使用 RClone 将内容克隆到 LinodeObject Storage

使用 RClone 将内容克隆到 LinodeObject Storage

使用 RClone 将内容克隆到 LinodeObject Storage

当你需要将大量文件从一个远程位置移动到另一个远程位置时,尤其是在不同的云服务之间,将所有文件从源文件复制到本地计算机,然后再上传到新的目的地,可能是一场噩梦。想象一下处理一 TB 的文件。你的机器上有足够的存储空间吗?

幸运的是,有一种更好的方法可以解决这个问题:Rclone。Rclone 是一款 CLI 工具,可让你在远程位置之间直接执行批量文件操作,从源位置到目的地高效同步文件。

在本篇文章中,我们将指导您使用 rclone 将文件从云存储驱动器复制到 LinodeObject Storage ,使整个过程尽可能无缝。

什么是 rclone?

Rclone 是一款管理云存储文件的命令行程序。它就像云存储的瑞士军刀,能处理同步、复制和移动文件等任务。

它是如何工作的?

Rclone 会为你要交互的每个云服务设置 "远程"。配置完成后,你就可以使用 rclone 命令在它们之间传输数据。虽然文件会在本地计算机上传输,但不会长期保存在本地计算机上。

你能用它做什么?

使用 rclone,您可以

  • 在不同云服务之间同步文件
  • 高效复制和移动文件
  • 将云存储作为文件系统挂载在本地计算机上。
  • 为文件加密,实现安全存储。

Rclone 支持多种云服务,包括 LinodeObject Storage 、Google Drive、AWS S3 、Nextcloud 等。它是一款管理云数据的多功能工具。

既然我们已经知道 rclone 的功能,下面就让我们来演示如何使用它在 Google Drive 和 LinodeObject Storage 之间同步数据。

使用 rclone 时,先将文件从远程源传输到本地计算机,然后再移动到远程目的地。虽然这些文件不在本地保存,但数据仍通过互联网连接传输。

为了优化这一过程并减少家庭网络的负载,我们建议创建一个 Linode 虚拟机。这样做可以缩短数据传输路径。 

要优化设置,请选择与 LinodeObject Storage 存储桶位于同一区域的 Linode。

第 2 步:安装 rclone

设置好 Linode 虚拟机后,下一步就是安装 rclone。首先,使用 SSH 连接到 Linode 实例。在 Linode 控制面板上,你可以通过 LISH 控制台进行连接。

运行以下命令下载并安装 rclone:

~# curl https://rclone.org/install.sh | sudo bash

运行以下命令检查 rclone 安装是否正确:

~# rclone version
rclone v1.66.0- os/version: debian 11.9 (64 bit)- os/kernel: 5.10.0-28-amd64 (x86_64)- os/type: linux- os/arch: amd64- go/version: go1.22.1- go/linking: static- go/tags: none

确认安装成功后,就可以使用云存储遥控器配置 rclone 了。

第 3 步:为 rclone 添加新的远程文件(Google Drive)

要开始传输文件,你需要设置 rclone 以访问你的 Google Drive。为此,你需要获取证书。请按照以下说明创建服务账户,并为服务账户获取公钥/私钥。将此文件保存在本地计算机上,文件名为 service-account.json。然后,使用 SFTP 将该文件传输到 Linode 虚拟机(因为 rclone 需要引用该文件)。

使用 Linode 虚拟机上的服务帐户密钥文件,使用以下命令在 rclone 中配置 Google Drive 远程:

~# rclone config

按照提示设置新遥控器:

  1. 选择 "n "表示 new remote.
  2. Name 例如:"gdrive")。
  3. 对于 storage type从选项列表中选择 "Google Drive"。
  4. 将 client_id 和 client_secret 留空。
  5. 选择适当的 scope.我们将选择 "只读访问文件元数据和内容"。
  6. 对于 service_account 文件,请输入包含上述下载的服务帐户凭据的 JSON 文件的路径。
  7. 为其余问题选择默认值。

如需了解更详细的步骤,也可参阅Google Drive 的 rclone 文档

完成后,rclone 就可以访问你的 Google Drive,随时进行文件操作。

第 4 步:为 rclone 添加一个新的远程节点(Linode)

下一步是在 rclone 中设置第二个远程,指向 LinodeObject Storage 。与上一步一样,你需要获取云存储证书。

LinodeObject Storage 凭证与AWS S3 凭证类似。您可以从 Linode 云管理器获取访问密钥和秘钥。在 Object Storage 页面,点击 Create Access Key.

创建访问密钥和保密密钥后,将它们复制下来。

使用以下命令在 rclone 中配置 Linode 远端:

~# rclone version

按照提示设置新遥控器:

  1. 选择 "n "表示 new remote.
  2. Name 例如:"linode")。
  3. 对于 storage type,从选项列表中选择 "Amazon S3 兼容存储提供商"。
  4. 对于 provider从选项列表中选择 "LinodeObject Storage"。
  5. 选择 "下一步输入AWS 凭据"。
  6. 在 access_key_id 中,粘贴上面复制的访问密钥。
  7. 在 secret_access_key 中,粘贴上面复制的密钥。
  8. 为您的 LinodeObject Storage 水桶选择区域
  9. 为其余问题选择默认值。

有关详细步骤,请参阅LinodeObject Storage 的 rclone 文档

完成后,rclone 将访问您的 LinodeObject Storage ,准备从 Google Drive 同步文件。

步骤 5:同步

在 rclone 中将 Google Drive 和 LinodeObject Storage 配置为远程,现在就可以在它们之间同步文件了。

在我们的演示中,我们要将 Google Drive 中的数据内容同步到 LinodeObject Storage 存储桶中名为 data 的文件夹中。

让我们先看看 Google Drive 文件夹里有什么:

~# rclone size gdrive:/data
Total objects: 4.138k (4138)
Total size: 145.477 KiB (148968 Byte)

以下是我们在 LinodeObject Storage 存储桶中看到的内容:

~# rclone size linode:/data
2024/05/18 16:06:40 Failed to size: directory not found

不出所料,数据文件夹并不存在(尚未)。

要同步文件,我们可以使用以下基本命令:

~# rclone sync gdrive:/data linode:/data

此命令将把文件从 Google Drive(源)复制到 LinodeObject Storage (目标)。

如果我们想监控传输过程,可以添加 -progress 标志:

~# rclone sync \     gdrive:/data \     linode:/data \     --progress

我们可以使用 -transfers 标志配置并发传输的次数,从而进一步优化同步过程:

~# rclone sync \     gdrive:/data \     linode:/data \     --progress –transfers=8

同步开始后,我们会看到 rclone 不断更新传输状态:

Transferred:        6.152 KiB / 145.195 KiB, 4%, 421 B/s, ETA 5m37s
Transferred:        175 / 4138, 4%
Elapsed time:       16.1s
Transferring:
*    6/09843537-bc73-4def-a900-eb229b3ea126.txt: transferring
*    6/0a8fdcd4-2ded-4e69-8c08-37cbc74a3546.txt: transferring
*    6/0aed5c04-4a1b-4c6d-9fb8-7e490a959587.txt: transferring
*    6/0b35ae54-fae6-45f3-8f68-1445d8433e10.txt: transferring
*    6/0b9c8a7c-e6a9-44a3-8e89-28cb9e0fd695.txt: transferring
*    6/0bfddb9a-4f06-409b-ad6b-ee3c741dcf95.txt: transferring
*    6/0c2ebdda-87b7-44cf-9d9c-3e802880fc9c.txt: transferring
*    6/0c5a9407-ed90-40e1-85b3-18054f845cec.txt: transferring

初次同步后,我们可以重新运行命令,确保所有文件都是最新的。Rclone 只传输新的或已更改的文件,因此后续同步速度更快。

~# rclone sync gdrive:/data linode:/data --progress
Transferred:        0 B / 0 B, -, 0 B/s, ETA -
Checks:             4138 / 4138, 100%
Elapsed time:       10.0s

此步骤可确保您的文件在 Google Drive 和 LinodeObject Storage 之间高效传输并保持同步。

总结

在本篇文章中,我们将指导您使用 rclone 高效地将文件从 Google Drive 传输到 LinodeObject Storage 。虽然我们在演示中特别使用了 Google Drive 和 LinodeObject Storage ,但rclone 支持数十家云存储提供商

总结一下

  • Rclone 可让你在云服务之间直接执行批量文件操作。
  • 将 Linode 虚拟机设置在与 LinodeObject Storage 相同的区域,可以优化传输。
  • 使用 Google Drive 和 LinodeObject Storage 远程配置 rclone 简单而强大。
  • 使用 rclone 的同步功能,无需人工干预即可保持文件的最新状态。

准备好简化您的文件传输了吗?立即试用 LinodeObject Storage ,看看管理云数据有多简单!

注释

留下回复

您的电子邮件地址将不会被公布。 必须填写的字段被标记为*