调用CreateJob接口创建批量操作任务,对大量对象执行指定操作。
注意事项
作业状态为Complete并不代表每个条目都执行成功,最终每个条目的执行状况需以报告为准。比如lifecycle依赖批量作业来打tagging过滤进行回收的,要以最终报告为准。
PutObjectTagging会覆盖既有的tagging。
AddObjectTagging会先取Tagging、再更新,非原子性,但是如果有并发操作,则仍然可能会有覆盖行为。
如果有多个作业并发操作同一批Object,批量操作的执行顺序可能与提交顺序会不同,建议不要并发操作同一批Object。
Complete状态,仅代表Job完成,但不代表全部Object执行成功;同理Cancelled、Paused、Suspended、Failed状态,可能有部分Object执行成功。
处于Suspended状态超过14天用户未确认的Job将会转成失败状态。
设置Job状态为Cancelled时,Job不会马上取消,会有一段时间处于Cancelling状态。
权限说明
阿里云账号默认拥有全部权限。阿里云账号下的RAM用户或RAM角色默认没有任何权限,需要阿里云账号或账号管理员通过RAM Policy或Bucket Policy授予操作权限。
API  | Action  | 说明  | 
CreateJob  | 
  | 创建批量操作任务。  | 
请求语法
POST /?batchJob HTTP/1.1
Host: oss-cn-hangzhou.aliyuncs.com
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<CreateJobRequest>
  <ConfirmationRequired>boolean</ConfirmationRequired>
  <Operation>
    <PutObjectTagging>
      <TagSet>
        <Tag>
          <Key>string</Key>
          <Value>string</Value>
        </Tag>
      </TagSet>
    </PutObjectTagging>
    <DeleteObjectTagging>
    </DeleteObjectTagging>
    <PutObjectAcl>
      <ObjectAcl>string</ObjectAcl>
    </PutObjectAcl>
    <RestoreObject>
      <Days>integer</Days>
      <Tier>string</Tier>
    </RestoreObject>
  </Operation>
  <Report>
    <Bucket>string</Bucket>
    <Enabled>boolean</Enabled>
    <Prefix>string</Prefix>
    <ReportScope>string</ReportScope>
  </Report>
  <ClientRequestToken>string</ClientRequestToken>
  <Manifest>
    <Location>
      <ETag>string</ETag>
      <Bucket>string</Bucket>
      <Object>string</Object>
      <VersionId>string</VersionId>
    </Location>
    <Spec>
      <Fields>string</Fields>
      <Format>string</Format>
    </Spec>
  </Manifest>
  <Description>string</Description>
  <Priority>integer</Priority>
  <RoleArn>string</RoleArn>
</CreateJobRequest>请求头
此接口除支持公共请求头外,无特有请求头。更多信息,请参见公共请求头(Common Request Headers)。
请求元素
名称  | 类型  | 是否必选  | 示例值  | 描述  | 
CreateJobRequest  | 容器  | 是  | 无  | 批量作业任务的根节点。 子节点:ConfirmationRequired、Operation、Report、ClientRequestToken、Manifest、KeyPrefixManifestGenerator、Description、Priority、RoleArn 父节点:无  | 
ConfirmationRequired  | 布尔值  | 否  | false  | 作业执行前的确认。 子节点:无 父节点:CreateJobRequest  | 
Description  | 字符串  | 否  | 批量操作任务描述  | 作业描述信息。 子节点:无 父节点:CreateJobRequest  | 
Priority  | 整数  | 是  | 10  | 优先级。 子节点:无 父节点:CreateJobRequest  | 
RoleArn  | 字符串  | 是  | arn:acs:ram::uid:role/BatchOperationRole  | IAM角色,OSS将使用该角色去执行批量操作作业。 子节点:无 父节点:CreateJobRequest  | 
Operation  | 容器  | 是  | 无  | 执行批量作业的操作类型,只能包含一种操作。支持的操作类型包括PutObjectTagging、AddObjectTagging、DeleteObjectTagging、PutObjectAcl以及RestoreObject。 子节点:PutObjectTagging、AddObjectTagging、DeleteObjectTagging、PutObjectAcl、RestoreObject 父节点:CreateJobRequest  | 
PutObjectTagging  | 容器  | 否  | 无  | 设置对象标签操作。 子节点:TagSet 父节点:Operation  | 
TagSet  | 容器  | 是(当使用PutObjectTagging时)  | 无  | tag key、value集合。 子节点:Tag 父节点:PutObjectTagging  | 
Tag  | 容器  | 是  | 无  | 标签项。 子节点:Key、Value 父节点:TagSet  | 
Key  | 字符串  | 是  | Environment  | 标签键。 子节点:无 父节点:Tag  | 
Value  | 字符串  | 是  | Production  | 标签值。 子节点:无 父节点:Tag  | 
DeleteObjectTagging  | 容器  | 否  | 无  | 删除对象标签操作,空节点。 子节点:无 父节点:Operation  | 
PutObjectAcl  | 容器  | 否  | 无  | 设置对象ACL操作。 子节点:ObjectAcl 父节点:Operation  | 
ObjectAcl  | 字符串  | 是(当使用PutObjectAcl时)  | private  | 设置object acl,取值:default、private、public-read、public-read-write。 子节点:无 父节点:PutObjectAcl  | 
RestoreObject  | 容器  | 否  | 无  | 恢复归档对象操作。 子节点:Days、Tier 父节点:Operation  | 
Days  | 整数  | 否  | 7  | 设置归档、冷归档以及深度冷归档类型Object的解冻天数。归档类型Object解冻天数取值范围为1~7,冷归档以及深度冷归档类型Object解冻天数取值范围为1~365。 子节点:无 父节点:RestoreObject  | 
Tier  | 字符串  | 否  | Standard  | 冷归档、深度冷归档类型Object解冻优先级。冷归档类型:Standard(2~5小时)、Bulk(5~12小时);深度冷归档类型:Standard(48小时内)。 子节点:无 父节点:RestoreObject  | 
Report  | 容器  | 是  | 无  | 输出报告配置节点。 子节点:Bucket、Enabled、Prefix、ReportScope 父节点:CreateJobRequest  | 
Bucket  | 字符串  | 是  | report-bucket  | 报告输出存放的存储空间(Bucket)。目标Bucket必须和批量操作任务在同一个地域(Region)。 子节点:无 父节点:Report  | 
Enabled  | 布尔值  | 是  | true  | 是否需要输出报告。 子节点:无 父节点:Report  | 
Prefix  | 字符串  | 否  | reports/  | 报告输出的前缀,可使其存放在某个子目录下。 子节点:无 父节点:Report  | 
ReportScope  | 字符串  | 否  | AllTasks  | 报告输出范围,取值:AllTasks、FailedTasksOnly,默认为AllTasks(全都输出)。 子节点:无 父节点:Report  | 
ClientRequestToken  | 字符串  | 是  | unique-token-123  | 用于确保请求幂等性的唯一标识符,长度1~64字符。 子节点:无 父节点:CreateJobRequest  | 
Manifest  | 容器  | 条件必选  | 无  | 清单节点,与KeyPrefixManifestGenerator二选一。 子节点:Location、Spec 父节点:CreateJobRequest  | 
Location  | 容器  | 是(当使用Manifest时)  | 无  | 清单位置。清单文件所在的Bucket必须和批量操作任务在同一个地域(Region)。 子节点:ETag、Bucket、Object、VersionId 父节点:Manifest  | 
ETag  | 字符串  | 否  | d41d8cd98f00b204e9800998ecf8427e  | 清单文件的ETag。 子节点:无 父节点:Location  | 
Object  | 字符串  | 是  | manifest.csv  | 清单对应的Object。 子节点:无 父节点:Location  | 
VersionId  | 字符串  | 否  | 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo  | 清单对应的Object VersionId。 子节点:无 父节点:Location  | 
Spec  | 容器  | 是(当使用Manifest时)  | 无  | 描述清单格式。 子节点:Fields、Format 父节点:Manifest  | 
Format  | 字符串  | 是  | OSS_BatchOperations_CSV_20250611  | 清单类型,OSS批量操作CSV格式或OSS清单报告CSV格式。 子节点:无 父节点:Spec  | 
Fields  | 字符串  | 否  | Bucket,Key,VersionId  | 如果是用户自己上传的CSV,需要定义CSV格式。 子节点:无 父节点:Spec  | 
KeyPrefixManifestGenerator  | 容器  | 条件必选  | 无  | 基于前缀生成清单,与Manifest二选一。 子节点:SourceBucket、Prefix 父节点:CreateJobRequest  | 
SourceBucket  | 字符串  | 是(当使用KeyPrefixManifestGenerator时)  | source-bucket  | 清单的源Bucket。 子节点:无 父节点:KeyPrefixManifestGenerator  | 
Prefix  | 字符串  | 否  | prefix/  | 对象的前缀,用于筛选需要处理的对象。 子节点:无 父节点:KeyPrefixManifestGenerator  | 
响应元素
名称  | 类型  | 示例值  | 描述  | 
JobId  | 字符串  | MzRjZGU2NGQ3YTY5NGRhMTkxZmZhYzY5OTM5YTcxYWU=  | OSS为该任务生成的JobId,长度44个字符,不包含-、_,包含a-z、A-Z、0-9。  | 
响应头
此接口仅涉及公共响应头。更多信息,请参见公共响应头(Common Response Headers)。
示例
请求示例
POST /?batchJob HTTP/1.1 Host: oss-cn-hangzhou.aliyuncs.com Authorization: SignatureValue <?xml version="1.0" encoding="UTF-8"?> <CreateJobRequest> <ConfirmationRequired>false</ConfirmationRequired> <Operation> <PutObjectTagging> <TagSet> <Tag> <Key>Environment</Key> <Value>Production</Value> </Tag> </TagSet> </PutObjectTagging> </Operation> <Report> <Bucket>report-bucket</Bucket> <Enabled>true</Enabled> <Prefix>batch-reports/</Prefix> <ReportScope>AllTasks</ReportScope> </Report> <ClientRequestToken>unique-token-123</ClientRequestToken> <Manifest> <Location> <ETag>d41d8cd98f00b204e9800998ecf8427e</ETag> <Bucket>manifest-bucket</Bucket> <Object>manifest.csv</Object> </Location> <Spec> <Fields>Bucket,Key</Fields> <Format>OSS_BatchOperations_CSV_20250611</Format> </Spec> </Manifest> <Description>批量设置对象标签任务</Description> <Priority>10</Priority> <RoleArn>arn:acs:ram::uid:role/BatchOperationRole</RoleArn> </CreateJobRequest>返回示例
HTTP/1.1 200 OK <?xml version="1.0" encoding="UTF-8"?> <CreateJobResult> <JobId>MzRjZGU2NGQ3YTY5NGRhMTkxZmZhYzY5OTM5YTcxYWU=</JobId> </CreateJobResult>