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

S3批量操作从Deep Archive恢复至Standard报InvalidObjectState错误

S3 Batch Operations仅处理Deep Archive对象的实现方案

问题背景

使用S3 Batch Operations执行Restore操作将Deep Archive存储类对象转换为Standard存储类时作业失败:

  • 作业输入清单通过S3 Inventory生成,清单包含目标桶内所有对象
  • 目标桶内同时存在Deep Archive、Standard两类存储类对象,作业处理到Standard对象时触发报错
  • 报错信息如下:
Restore is not allowed for the object's current storage class (Service: Amazon S3; Status Code: 403; Error Code: InvalidObjectState; Request ID: CBKBCAHF9RJJY180; S3 Extended Request ID: ut4csBUfR+c1rSZQMVga1h+WNS6hiddXB2ANj7vvtAOlv8YtavgUM/droJ09qqi2ZMmqVQFOby8=; Proxy: null)
  • 目标桶对象总量超200万,无法通过手动筛选生成合规清单

可落地方案

按优先级从高到低排列:

  • 配置S3 Inventory规则直接生成过滤后的清单
    新建或编辑现有S3 Inventory规则时,在筛选条件中指定仅包含存储类为DEEP_ARCHIVE的对象,生成的清单天然排除Standard等其他存储类的对象,可直接作为Batch Operations的输入。该方案全程在AWS服务侧完成,无额外开发成本,适配千万级以上对象规模,不需要做二次数据处理。
  • 用S3 Select筛选已有全量清单
    如果已经生成了全量清单,不需要重新跑Inventory任务,直接使用S3 Select对存储在S3上的清单文件做服务端查询筛选,导出仅包含Deep Archive对象的记录作为新的作业清单。S3 Inventory支持的CSV、ORC、Parquet三种输出格式都兼容S3 Select,筛选过程不需要把全量清单下载到本地,处理200万条记录仅需数秒,成本可忽略。
    针对默认字段配置的CSV格式清单,筛选的SQL语句参考:
    SELECT * FROM s3object s WHERE s._7 = 'DEEP_ARCHIVE'
    
    正式筛选前先执行SELECT * FROM s3object s LIMIT 5拉取前5行记录,确认StorageClass字段对应的列序号,如果清单配置了额外输出字段,调整SQL里的列序号即可。
  • 配置作业失败容忍规则做兜底
    不需要调整清单,创建Batch Operations作业时,将失败任务容忍阈值设置为高于非Deep Archive对象的占比,作业碰到Standard对象触发InvalidObjectState报错时不会整体终止,会自动跳过失败对象继续处理剩余的Deep Archive对象,最终可通过作业报告查看所有跳过的记录。该方案操作成本最低,适合需要紧急启动作业的场景,注意该规则会跳过所有触发相同错误码的对象,使用前需确认桶内不存在其他会触发同错误码的异常对象,避免漏处理目标资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:09:21