排查批量操作问题
以下主题列出了常见错误,有助于您排查在使用 Amazon S3 批量操作时可能遇到的问题。
要排查 S3 批量复制的问题,请参阅批量复制错误。
当存在权限问题或启用了 S3 对象锁定保留模式时,未交付任务报告
在缺少必需权限或者对目标存储桶启用了对象锁定保留模式(监管模式或合规模式)时,会发生以下错误。
错误:失败的原因。无法将任务报告写入您的报告桶。请检查您的权限。
AWS 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
错误。
要在启用任务标签选项的情况下创建批量操作任务,创建批量操作任务的 AWS Identity and Access Management(IAM)用户除 s3:CreateJob
权限外还必须具有 s3:PutJobTagging
权限。
有关批量操作所需权限的更多信息,请参阅授予批处理操作的权限。
读取清单的访问被拒绝
如果您在尝试创建批量操作任务时,批量操作无法读取清单文件,则可能会出现以下错误。
AWS CLI
禁止读取清单失败的原因:AccessDenied
Amazon S3 控制台
警告:无法获取清单对象的 ETag。指定其他对象以继续。
要解决此问题,请执行下列操作:
-
验证您用于创建批量操作任务的 AWS 账户的 IAM 角色是否具有
s3:GetObject
权限。账户的 IAM 角色必须具有s3:GetObject
权限,以便支持批量操作读取清单文件。有关批量操作所需权限的更多信息,请参阅授予批处理操作的权限。
-
检查清单对象的元数据中是否存在与 S3 对象所有权不匹配的访问权限。有关 S3 对象所有权的更多信息,请参阅为您的存储桶控制对象所有权和禁用 ACL。。
-
检查 AWS Key Management Service(AWS KMS)密钥是否用于加密清单文件。
批量操作支持用 AWS KMS 加密的 CSV 清单报告。但是,批量操作不支持用 AWS KMS 加密的 CSV 清单文件。有关更多信息,请参阅配置 Amazon S3 清单 和指定清单。