排查批量操作问题
以下主题涵盖了常见错误,有助于排查在使用 Amazon S3 批量操作时可能遇到的问题。
要排查 S3 批量复制的问题,请参阅批量复制错误。
导致批量操作错误的失败主要有两种类型:
-
API 失败:所请求的 API(例如
CreateJob
)执行失败。 -
作业失败:初始 API 请求获得成功但作业失败,例如,由于清单或在清单中指定的对象的权限存在问题。
NoSuchJobException
类型:API 失败
如果作业已过期,或者 CreateJob
请求中使用的 ID 与 DescribeJob
或 UpdateJobStatus
请求中使用的 ID 不同,则可能会发生这种情况。
作业在处于终端状态(Complete
、Cancelled
或 Failed
)的 90 天后过期。有关更多信息,请参阅跟踪任务状态和完成报告。
相关错误消息
No such job
建议的操作
要对 NoSuchJobException
进行故障排除,请尝试以下操作:
-
验证该作业存在且位于您的账户中。可以使用以下 AWS CLI 命令:
aws s3control list-jobs --account-id 111122223333
-
验证在
CreateJob
请求中收到的 ID 是否与在DescribeJob
或UpdateJobStatus
请求中使用的 ID 相同。
AccessDeniedException
类型:API 失败
当 S3 批量操作请求由于不受支持的操作而被阻止,或者发出请求的 IAM 身份没有足够的权限来执行某项操作时,就会发生 AccessDeniedException
。
相关错误消息
Access Denied
建议的操作
要对 AccessDeniedException 进行故障排除,可以尝试以下操作:
-
确保 S3 批量操作在该区域中支持此操作或功能。有关支持的操作的列表,请参阅 S3 分批操作支持的操作。所有区域中的通用存储桶都支持批量操作,但针对目录存储桶的操作仅适用于目录存储桶的区域端点和可用区端点。
-
确保发出请求的 IAM 身份拥有创建和管理批量操作的权限,有关权限列表,请参阅授予批处理操作的权限。
SlowDownError
类型:API 失败
当您的账户超过 S3 批量操作的请求速率限制时,就会出现 SlowDownError
异常。
建议的操作
要解决 SlowDownError
异常,可以尝试以下操作:
-
降低请求速率并重试。有关更多信息,请参阅《AWS Prescriptive Guidance》中的 Retry with backoff pattern。
InvalidManifestContent
类型:作业失败
当清单文件格式出现问题或 S3 批量操作用于处理对象的内容出现问题时,就会出现 InvalidManifestContent
异常。
相关错误消息
-
Required fields are missing in the schema: + missingFields
-
Invalid Manifest Content
-
The S3 Batch Operations job failed because it contains more keys than the maximum allowed in a single job. Please split the job into multiple smaller jobs or reach out to customer support for next steps.
建议的操作
要对 InvalidManifestContent
进行故障排除,请尝试以下操作:
对于清单格式问题:
-
确保清单符合所需的格式规范。所有必需的列都应存在、格式正确且在清单中保持一致。有关示例,请参阅 指定清单。
对于内容问题:
-
将对象键中的特殊字符替换为其 XML 实体代码,并确保对象键符合 Amazon S3 命名约定。有关更多信息,请参阅 为 Amazon S3 对象命名。
-
确保所有对象键都经过 URL 编码。
-
将大型作业分解为较小的作业。可以查看每个操作支持多少个对象(S3 分批操作支持的操作)。