当你需要将大量文件从一个远程位置移动到另一个远程位置时,尤其是在不同的云服务之间,将所有文件从源文件复制到本地计算机,然后再上传到新的目的地,可能是一场噩梦。想象一下处理一 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 之间同步数据。
步骤 1:创建 Linode(可选但建议使用)
使用 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 了。
第 3 步:为 rclone 添加新的远程文件(Google Drive)
要开始传输文件,你需要设置 rclone 以访问你的 Google Drive。为此,你需要获取证书。请按照以下说明创建服务账户,并为服务账户获取公钥/私钥。将此文件保存在本地计算机上,文件名为 service-account.json。然后,使用 SFTP 将该文件传输到 Linode 虚拟机(因为 rclone 需要引用该文件)。
使用 Linode 虚拟机上的服务帐户密钥文件,使用以下命令在 rclone 中配置 Google Drive 远程:
~# rclone config |
按照提示设置新遥控器:
- 选择 "n "表示
new remote
. Name
例如:"gdrive")。- 对于
storage type
从选项列表中选择 "Google Drive"。 - 将 client_id 和 client_secret 留空。
- 选择适当的
scope
.我们将选择 "只读访问文件元数据和内容"。 - 对于 service_account 文件,请输入包含上述下载的服务帐户凭据的 JSON 文件的路径。
- 为其余问题选择默认值。
如需了解更详细的步骤,也可参阅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 |
按照提示设置新遥控器:
- 选择 "n "表示
new remote
. Name
例如:"linode")。- 对于
storage type
,从选项列表中选择 "Amazon S3 兼容存储提供商"。 - 对于
provider
从选项列表中选择 "LinodeObject Storage"。 - 选择 "下一步输入AWS 凭据"。
- 在 access_key_id 中,粘贴上面复制的访问密钥。
- 在 secret_access_key 中,粘贴上面复制的密钥。
- 为您的 LinodeObject Storage 水桶选择区域。
- 为其余问题选择默认值。
有关详细步骤,请参阅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 |
以下是我们在 LinodeObject Storage 存储桶中看到的内容:
~# rclone size linode:/data |
不出所料,数据文件夹并不存在(尚未)。
要同步文件,我们可以使用以下基本命令:
~# 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 |
初次同步后,我们可以重新运行命令,确保所有文件都是最新的。Rclone 只传输新的或已更改的文件,因此后续同步速度更快。
~# rclone sync gdrive:/data linode:/data --progress |
此步骤可确保您的文件在 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 ,看看管理云数据有多简单!
注释