复制文件
复制很简单!使用AWS Command-Line Interface (CLI):
aws s3 sync s3://source-bucket s3://destination-bucket
数据将直接在存储桶之间传输 - 数据将不会被下载和上传。因此,您使用什么大小的 EC2 实例并不重要——您甚至可以从自己的计算机上运行命令,并且速度一样快。 CLI 将为要复制的每个文件向 S3 发送必要的复制命令。
使用sync 命令的好处是,如果出现问题,可以恢复复制,因为它只复制自上次同步以来丢失或更新的文件。
权限
您将需要考虑的是如何允许访问以复制文件。假设您有:
- 具有存储桶 A 的帐户 A
- 帐户 B 与存储桶 B
- 您希望从存储桶 A 复制到存储桶 B
您应该从账户 B 中有权写入存储桶 B 的用户(“用户 B”)运行 sync 命令。
您还需要向存储桶 A 添加专门允许用户 B 访问的存储桶策略。该策略类似于:
{
"Id": "Policy1",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadOnlyAccess",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/*",
"Principal": {
"AWS": [
"arn:aws:iam::123456789012:user/user-b"
]
}
}
]
}
arn 值是用户 B 的 ARN。
时机
如果桶在同一个区域,传输会更快。但是,我不知道转移需要多长时间。 25TB其实是很多数据! (你有没有试过在电脑上复制 1TB 的数据?速度很慢!)
好处是您可以多次使用aws s3 sync 命令。假设您需要在周末进行转移。您可以在一周内运行该命令,然后在周末再次运行它。只会复制已添加/更改的文件,因此最终的复制窗口会非常小。