如何为 Snowball 导出作业指定多个 Amazon S3 对象前缀?
上次更新时间:2020 年 3 月 12 日
我想为我的 AWS Snowball 导出作业指定多个 Amazon Simple Storage Service (Amazon S3) 对象密钥名称前缀。但是,当我创建带有多个前缀的 Snowball 导出作业时,我看到前缀范围内只有部分文件被复制。为什么会发生这种情况?
解决方案
对于每个 S3 存储桶,Snowball 导出作业仅支持一个前缀范围。要复制多个前缀中的所有对象,您必须指定范围,以便涵盖您要复制的所有对象密钥名称前缀。如果使用 AWS 命令行接口 (AWS CLI) 来创建导出作业,则必须确认在 KeyRange 内指定的 BeginMarker 和 EndMarker 包含您要复制的所有前缀。
注意:如果指定多个 BeginMarker 或 EndMarker 值,AWS CLI 不会返回错误,但是这样做会导致不完整的复制操作。如果在运行 AWS CLI 命令时收到错误,请确保您使用的 AWS CLI 为最新版本。
如果您指定的前缀范围(密钥范围)导致了不完整的复制操作,可以:
- 将其余对象复制到另一个 S3 存储桶。您可以选择使用整个存储桶导出其余数据,也可选择使用单个 BeginMarker 或 EndMarker 将其余对象导出至某个前缀范围。您需要为 PUT、COPY 和 LIST 请求付费。
- 如果您无法将其余对象复制到另一个 S3 存储桶,则必须取消不完整的导出作业。然后,另外创建一个导出作业来复制其余对象或前缀。
提醒:比起将其余对象复制到另一个存储桶,此选项成本更高。