排查批量操作问题 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

排查批量操作问题

以下主题列出了常见错误,以帮助您排除在批量操作过程中可能遇到的问题。

存在权限问题或启用了 S3 对象锁定保留模式时,未交付作业报告

在缺少必需权限或者对目标存储桶启用了对象锁定保留模式(监管模式或合规性模式)时,会发生以下错误。

错误:失败的原因。无法将任务报告写入您的报告桶。请检查您的权限。

IAM 角色和信任策略必须配置为允许 S3 批量操作访问,以在要交付报告的存储桶中 PUT 对象。如果缺少这些必需的权限,则会出现作业报告交付失败的情况。

启用保留模式后,桶受到“一次写入,多次读取”(WORM)保护。在目标存储桶上,不支持在启用了保留模式的时进行对象锁定,因此作业完成报告交付尝试失败。要解决此问题,请为您的任务完成报告选择一个未启用对象锁定保留模式的目标桶。

S3 批量复制失败并出现错误:生成清单时未找到符合筛选条件的密钥

错误:生成清单时未找到符合筛选条件的密钥。

出现此错误的原因为以下之一:

  • 当源存储桶中的对象存储在 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类中时。

    要对这些对象使用批量复制,请先在批量操作任务中使用 S3 启动还原对象操作,将它们还原到 S3 Standard 存储类。有关更多信息,请参阅恢复已归档的对象还原对象(批量操作)。还原对象后,您可以使用批量复制任务来复制它们。

  • 当提供的筛选条件与源存储桶中的任何有效对象都不匹配时。

    验证并更正筛选条件。例如,在批量复制规则中,筛选条件是查找 example-s3-bucket 中带有 Tax/ 前缀的所有对象。如果前缀名称输入不准确,开头和结尾都有一个斜杠(即 /Tax/),而不是仅在结尾处有斜杠,则找不到任何 S3 对象。要解决此错误,请更正前缀,在本例中就是将复制规则中的 /Tax/ 更改为 Tax/

向现有复制配置添加新的复制规则后,会出现批量操作失败

批量操作尝试对源桶的复制配置中的每条规则执行现有对象复制。如果任何现有复制规则出现问题,则可能会出现失败。

批量操作任务的完成报告解释了任务失败的原因。有关常见错误的列表,请参阅Amazon S3 复制失败原因

对于对象的批量操作失败,错误为 400 InvalidRequest:由于缺少 VersionId,任务失败

如果批量操作任务正在对受版本控制的桶中的对象执行操作,并在清单中遇到版本 ID 字段为空的对象,则会出现以下示例错误。

错误:BUCKET_NAME,prefix/file_name,失败,400,InvalidRequest,由于缺少 VersionId,任务失败

之所以出现此错误,是因为清单中的版本 ID 字段是空字符串,而不是文本 null 字符串。

这一特定对象或这些对象的批量操作将失败,但整个任务不会失败。如果在操作期间将清单格式配置为使用版本 ID,则会出现此问题。非版本控制的任务不会遇到此问题,因为它们仅对每个对象的最新版本进行操作,并忽略清单中的版本 ID。

要解决此问题,请将空版本 ID 转换为 null 字符串。有关更多信息,请参阅 将 Amazon S3 库存报告中的空版本 ID 字符串转换为空字符串

在启用任务标签选项的情况下创建任务失败

如果没有 s3:PutJobTagging 权限,在启用了任务标签选项的情况下创建批量操作任务会导致 403 access denied 错误。

要在启用任务标签选项的情况下创建批量操作任务,创建批量操作任务的 Amazon Identity and Access Management(IAM)用户除 s3:CreateJob 权限外还必须具有 s3:PutJobTagging 权限。

有关批量操作所需权限的更多信息,请参阅授予 Amazon S3 分批操作的权限

读取清单的访问被拒绝

如果您在尝试创建批量操作任务时,批量操作无法读取清单文件,则可能会出现以下错误。

Amazon CLI

禁止读取清单失败的原因:AccessDenied

Amazon S3 控制台

警告:无法获取清单对象的 ETag。指定其他对象以继续。

要解决此问题,请执行下列操作:

  • 验证您用于创建批量操作任务的 Amazon Web Services 账户的 IAM 角色是否具有 s3:GetObject 权限。账户的 IAM 角色必须具有允许批量操作读取清单文件的 s3:GetObject 权限。

    有关批量操作所需权限的更多信息,请参阅授予 Amazon S3 分批操作的权限

  • 检查清单对象的元数据中是否存在与 S3 对象所有权不匹配的访问权限。有关 S3 对象所有权的更多信息,请参阅为您的存储桶控制对象所有权和禁用 ACL。

  • 检查 Amazon Key Management Service(Amazon KMS)密钥是否用于加密清单文件。

    S3 批量操作支持用 Amazon KMS 加密的 CSV 清单报告。但是,S3 批量操作不支持用 Amazon KMS 加密的 CSV 清单文件。有关更多信息,请参阅配置 Amazon S3 清单指定清单