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

排查批量操作问题

以下主题列出了常见错误,有助于您排查在使用 Amazon S3 批量操作时可能遇到的问题。

要排查 S3 批量复制的问题,请参阅批量复制错误

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

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

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

Amazon Identity and Access Management(IAM)角色和信任策略必须配置为支持批量操作具有 s3:PutObject 权限,以便将对象 PUT 到要向其中交付报告的存储桶中。如果缺少这些必需的权限,则会出现任务报告交付失败的情况。

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

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

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

错误:bucket_name,prefix/file_name,failed,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 CLI

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

Amazon S3 控制台

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

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

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

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

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

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

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