調用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 | 清單類型。取值:
子節點:無 父節點: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>