Super Slurper 允许您快速轻松地将对象从其他云提供商复制到您选择的 R2 存储桶。
迁移作业:
- 通过将源存储桶的自定义对象元数据复制到 R2 上的迁移对象来保留它们。
- 不会从源存储桶删除任何对象。
- 使用 HTTPS 连接上的 TLS 加密进行安全、私密的对象传输。
如果您要迁移的云存储存储桶主要由小于 1 TB 的对象组成,将 Super Slurper 作为策略的一部分可能是不错的选择。大于 1 TB 的对象将被跳过,需要单独复制。
对于不符合上述标准的迁移用例,建议使用 rclone 等工具。
-
在 Cloudflare 仪表板中,前往 R2 data migration(R2 数据迁移) 页面。
Go to Data migration ↗ -
选择 Migrate files(迁移文件)。
-
选择要迁移数据的源云存储提供商。
-
输入源存储桶名称和相关凭据,然后选择 Next(下一步)。
-
输入 R2 存储桶名称和相关凭据,然后选择 Next(下一步)。
-
查看迁移详情后,选择 Migrate files(迁移文件)。
您可以随时从 Data Migration 页面选择迁移来查看迁移作业状态。
此设置指定源存储桶内复制对象的前缀。
此设置决定从源存储存储桶复制的对象与目标 R2 存储桶中现有对象路径匹配时的行为。有两个选项:
- Overwrite(默认)
- Skip
Cloudflare 目前支持从以下云对象存储提供商复制数据到 R2:
- Amazon S3
- Cloudflare R2
- Google Cloud Storage (GCS)
- 所有 S3 兼容存储提供商
以下 S3 兼容存储提供商已经过测试并验证可与 Super Slurper 配合使用:
- Backblaze B2
- DigitalOcean Spaces
- Scaleway Object Storage
- Wasabi Cloud Object Storage
Super Slurper 应支持从所有 S3 兼容存储提供商传输,但上述列出的已明确测试。
要从 Amazon S3 复制对象,Super Slurper 需要访问 S3 存储桶的权限。虽然可以使用具有正确权限的任何 AWS Identity and Access Management (IAM) 用户凭据,但 Cloudflare 建议创建具有最小权限集的用户。
创建具有正确权限的凭据:
- 登录 AWS IAM 账户。
- 创建具有以下格式的策略,并将
<BUCKET_NAME>替换为要授予访问权限的存储桶:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:Get*", "s3:List*"],
"Resource": ["arn:aws:s3:::<BUCKET_NAME>", "arn:aws:s3:::<BUCKET_NAME>/*"]
}
]
}- 创建新用户并将创建的策略附加到该用户。
现在可以在定义源存储桶时使用 Access Key ID 和 Secret Access Key。
要从 Google Cloud Storage (GCS) 复制对象,Super Slurper 需要访问 GCS 存储桶的权限。您可以使用 Google Cloud 预定义的 Storage Admin 角色,但 Cloudflare 建议创建具有更小权限集的自定义角色。
创建具有必要权限的自定义角色:
- 登录 Google Cloud 控制台。
- 前往 IAM & Admin(IAM 和管理) > Roles。
- 找到
Storage Object Viewer角色并选择 Create role from this role(从此角色创建角色)。 - 为新角色命名。
- 选择 Add permissions(添加权限) 并添加
storage.buckets.get权限。 - 选择 Create(创建)。
使用自定义角色创建凭据:
- 登录 Google Cloud 控制台。
- 前往 IAM & Admin(IAM 和管理) > Service Accounts(服务账号)。
- 使用您的自定义角色创建服务账户。
- 前往创建的服务账户的 Keys(密钥) 选项卡。
- 选择 Add Key(添加密钥) > Create a new key(创建新密钥) 并下载 JSON 密钥文件。
现在可以在启用 Super Slurper 时使用此 JSON 密钥文件。
虽然 R2 的 ETag 生成在常规操作期间与 S3 兼容,但使用 Super Slurper 迁移对象时,ETag 并不保证相等。 Super Slurper 会自主决定迁移对象时使用的操作,以优化性能和网络用量。它可能会选择通过分段操作迁移对象,这会影响 ETag 计算。
例如,原本通过单次 PutObject 操作上传到 S3 的 320 MiB 对象,可能会通过分段操作迁移到 R2。在这种情况下,其在 R2 上的 ETag 将与 S3 上的 ETag 不同。
同样,原本通过分段操作上传到 S3 的对象,如果 Super Slurper 为迁移选择的分段大小与原始上传时的分段大小不同,其在 R2 上的 ETag 也可能不同。
因此,不建议依赖迁移前后 ETag 的一致性。
使用 AWS S3 归档存储类别 ↗ 存储的对象将被跳过,需要单独复制。具体而言:
- 使用 S3 Glacier 层级(不包括 Glacier Instant Retrieval)存储的文件将被跳过并记录在迁移日志中。
- 使用 S3 Intelligent Tiering 并放置在 Deep Archive 层级的文件将被跳过并记录在迁移日志中。