可参照的文档
业务场景
- 本地数据上云
- 云上数据搬迁
- 同一个云厂商,数据在不同区域搬迁
- 不同的云厂商,数据搬迁
- 云上数据取至本地
假如本端支持对象存储,细分场景如下:
- 源对象服务的账号下,将指定桶内的对象,同步至云对象服务的同名桶或者指定桶名下。
- 源对象服务中多个桶的数据同步至云对象服务的指定桶中。
- 源对象服务的账号下,按桶对桶的方式,同步至云对象服务。
假如本端不支持对象存储,比如仅具备文件存储,则可以使用目标对象存储服务提供的SDK,上传至目标对象存储服务。场景如下:
- 以文件清单的形式,将清单中的文件,上传至云对象服务的指定桶下。
- 以目录的形式,将目录下的文件,上传至云对象服务的指定桶下。
- 以目录清单的形式,将多个目录下的文件,上传至云对象服务的指定桶下。
预置条件
目标存储服务提供对象存储服务,提供兼容S3协议的SDK。
- 对象服务的账号
- AK/SK
- 目标桶
操作步骤
假如本端支持对象存储,则可以设计如下操作步骤。
- 获取本地桶列表,以及对应的目标桶的列表。
- 遍历本地桶的列表。
- 获取桶内的文件的清单。
- 构建上传任务,包括本地桶、对象名、目标桶,放入上传任务清单的队列中。
- 遍历上传任务清单。
- 从本地桶中获取对象。
- 将对象上传至目标桶。
- 针对小对象,直接上传。
- 针对大对象,使用多段上传的接口。
- 记录日志。
注意事项:
- 扫描本地桶时的并发方案。
- 桶之间串行扫描,或者并行扫描。
- 桶内,串行获取对象清单,或者并发获取对象清单。
- 本地桶存在的倾斜问题。
- 个别桶内的对象数量特别大。
- 对象的大小,分布不均衡。
- 扫描、上传操作的时间窗。
- 开始、结束、暂停、恢复的控制。
- 任务统计。
- 上传操作占用的带宽。
- 上传操作的数量。
需注意的问题:
- 桶内对象的重名问题。
- 桶的重名问题。
- 大对象,比如超出5G时,一般需要使用多段的方式来上传。