You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS S3 JS SDK调用restoreObject带OutputLocation时触发MalformedXML错误

解决S3 Glacier恢复时的MalformedXML异常问题

核心原因

你的restoreParams中OutputLocation.S3缺少必填的RoleArn参数,这是导致XML格式验证失败的直接原因。AWS要求在指定恢复输出位置时,必须提供一个IAM角色的ARN,用于授权S3将恢复后的对象写入目标位置。

修正后的参数配置

let restoreParams = {
    Bucket: "bucketExample",
    Key: "file.txt",
    RestoreRequest: {
        Days: 1,
        GlacierJobParameters: {
            Tier: "Standard"
        },
        OutputLocation: {
            S3: {
                BucketName: "bucketExample",
                Prefix: "_restoreComplete",
                RoleArn: "arn:aws:iam::123456789012:role/YourS3RestoreRole" // 替换为你的IAM角色ARN
            }
        }
    }
};

关键权限配置

你需要确保这个IAM角色具备以下权限:

  • 允许从源S3桶读取对象的权限(s3:GetObject)
  • 允许向目标桶(这里是同一个桶)写入对象的权限(s3:PutObject)
  • 角色的信任策略必须允许s3.amazonaws.com作为可信实体,示例信任策略:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "s3.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

其他检查点

  • 确认RoleArn中的账号ID和角色名称正确无误
  • 目标桶的前缀_restoreComplete没有包含AWS禁止的特殊字符
  • 你的CORS配置修改与该异常无关,因为这是服务器端的XML Schema验证错误,并非跨域请求问题

内容的提问来源于stack exchange,提问作者doydoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:45:36