跳转到内容
搜索文档

Rclone

最后更新 查看 MarkdownAgent 设置

在开始之前,您必须生成 Access Key。所有示例都将使用 access_key_idaccess_key_secret 变量,分别代表您生成的 Access Key ID(访问密钥 ID)Secret Access Key(秘密访问密钥) 值。


Rclone 是一个管理云存储文件的命令行工具。您可以使用 rclone 并发上传对象到 R2。

配置 rclone

安装 rclone 后,可以运行 rclone config 配置新的 S3 存储提供商。系统会提示您回答一系列关于新提供商详情的问题。

  1. 通过选择 n 创建新 remote。
  2. 为新 remote 选择名称。例如,使用 r2
  3. 选择 Amazon S3 Compliant Storage Providers 存储类型。
  4. 选择 Cloudflare R2 storage 作为提供商。
  5. 选择是手动输入 AWS 凭据,还是从运行时环境获取。
  6. 输入 AWS Access Key ID。
  7. 输入 AWS Secret Access Key(密码)。
  8. 选择要连接的区域(可选)。
  9. 选择 S3 API endpoint。

编辑现有 rclone 配置

如果之前已配置过 rclone,可以运行 rclone config file 打印 rclone 配置文件的位置:

rclone config file
# Configuration file is stored at:
# ~/.config/rclone/rclone.conf

然后使用编辑器(例如 nanovim)添加或编辑新提供商。此示例假设您正在添加新的 r2 提供商:

[r2]
type = s3
provider = Cloudflare
access_key_id = abc123
secret_access_key = xyz456
endpoint = https://<accountid>.r2.cloudflarestorage.com
acl = private

然后可以在任何正常工作流中使用新的 rclone 提供商。

列出存储桶和对象

rclone tree 命令可用于列出 remote 的内容,在此例中为 Cloudflare R2。

rclone tree r2:
# /
# ├── user-uploads
# │   └── foobar.png
# └── my-bucket-name
#     ├── cat.png
#     └── todos.txt

rclone tree r2:my-bucket-name
# /
# ├── cat.png
# └── todos.txt

上传和检索对象

rclone copy 命令可用于将对象上传到 R2 存储桶,反之亦然 — 这允许您上传最大 5 TB 的对象(R2 支持的最大对象大小)。

# Upload dog.txt to the user-uploads bucket
rclone copy dog.txt r2:user-uploads/
rclone tree r2:user-uploads
# /
# ├── foobar.png
# └── dog.txt

# Download dog.txt from the user-uploads bucket
rclone copy r2:user-uploads/dog.txt .

关于分段上传分片大小的说明

对于分段上传,分片大小会显著影响使用的 Class A 操作数量,进而影响最终费用。 每次分片上传都算作单独的操作,因此较大的分片大小使用更少的操作,但如果上传失败,重试成本可能更高。此外,分段上传始终至少消耗 3 倍于单次 PutObject 的操作,因为它至少包括一次 CreateMultipartUploadUploadPartCompleteMultipartUpload 操作。

平衡分片大小很大程度上取决于您的用例,但这些因素可以帮助您最小化账单,值得考虑。

可以使用 --s3-chunk-size CLI 参数配置 rclone 的分段上传分片大小。注意,可能还需要调整 --s3-upload-cutoff 参数以确保 rclone 使用分段上传。两者都可以在配置文件中设置。通常 --s3-upload-cutoff 不会小于 --s3-chunk-size

rclone copy long-video.mp4 r2:user-uploads/ --s3-upload-cutoff=100M --s3-chunk-size=100M

生成预签名 URL

您还可以使用 rclone link 命令生成预签名链接,临时共享文件的公共访问权限。

# You can pass the --expire flag to determine how long the presigned link is valid. The --unlink flag isn't supported by R2.
rclone link r2:my-bucket-name/cat.png --expire 3600
# https://<accountid>.r2.cloudflarestorage.com/my-bucket-name/cat.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=<credential>&X-Amz-Date=<timestamp>&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=<signature>

这篇文档对您有帮助吗?