Panggil operasi CreateJob untuk membuat batch job yang menjalankan operasi tertentu pada beberapa objek.
Catatan penggunaan
Status job `Complete` tidak menjamin bahwa semua task dalam job tersebut berhasil. Anda harus memeriksa laporan akhir untuk menentukan status eksekusi setiap task. Sebagai contoh, jika aturan lifecycle bergantung pada batch job untuk menambahkan tag guna penghapusan objek, laporan akhir merupakan sumber otoritatif atas hasilnya.
`PutObjectTagging` akan menimpa tag yang sudah ada.
`AddObjectTagging` bukanlah operasi atomik. Operasi ini terlebih dahulu mengambil tag yang ada lalu memperbaruinya. Penimpaan dapat terjadi jika terdapat operasi konkuren.
Jika beberapa job beroperasi secara konkuren pada kumpulan objek yang sama, urutan eksekusi mungkin berbeda dari urutan pengiriman. Hindari menjalankan operasi konkuren pada kumpulan objek yang sama.
Status `Complete` hanya menunjukkan bahwa job telah selesai, bukan berarti semua objek berhasil diproses. Demikian pula, untuk job dengan status `Cancelled`, `Paused`, `Suspended`, atau `Failed`, beberapa objek mungkin telah berhasil diproses.
Jika sebuah job tetap berada dalam status `Suspended` selama lebih dari 14 hari tanpa konfirmasi pengguna, statusnya akan berubah menjadi `Failed`.
Ketika sebuah job dibatalkan, job tersebut tidak langsung berhenti, melainkan terlebih dahulu memasuki status `Cancelling` selama periode tertentu.
Izin
Secara default, Akun Alibaba Cloud memiliki semua izin. Sebaliknya, Pengguna Resource Access Management (RAM) atau Peran RAM tidak memiliki izin apa pun secara default. Pemilik Akun Alibaba Cloud atau administrator harus memberikan izin menggunakan RAM Policy atau Bucket Policy.
API | Action | Deskripsi |
CreateJob |
| Membuat Pekerjaan operasi Batch. |
Sintaks permintaan
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>Header permintaan
Operasi ini hanya menggunakan common request headers. Untuk informasi selengkapnya, lihat Common Request Headers.
Elemen permintaan
Nama | Tipe | Diperlukan | Contoh | Deskripsi |
CreateJobRequest | Container | Ya | Tidak ada | Node root dari batch operation job. Node anak: ConfirmationRequired, Operation, Report, ClientRequestToken, Manifest, KeyPrefixManifestGenerator, Description, Priority, dan RoleArn Node induk: Tidak ada |
ConfirmationRequired | Boolean | Tidak | false | Konfirmasi sebelum job dijalankan. Node anak: None Node induk: CreateJobRequest |
Description | String | Tidak | Deskripsi pekerjaan operasi batch | Deskripsi pekerjaan. Node anak: None Node induk: CreateJobRequest |
Priority | Integer | Ya | 10 | Prioritas job. Node anak: None Node induk: CreateJobRequest |
RoleArn | String | Ya | arn:acs:ram::uid:role/BatchOperationRole | Peran RAM yang diasumsikan oleh OSS untuk menjalankan pekerjaan operasi batch. Node anak: None Node induk: CreateJobRequest |
Operation | Container | Ya | Tidak ada | Jenis operasi yang akan dijalankan dalam batch job. Hanya satu jenis operasi yang diperbolehkan. Operasi yang didukung meliputi PutObjectTagging, AddObjectTagging, DeleteObjectTagging, PutObjectAcl, dan RestoreObject. Node anak: PutObjectTagging, AddObjectTagging, DeleteObjectTagging, PutObjectAcl, dan RestoreObject Node induk: CreateJobRequest |
PutObjectTagging | Container | Tidak | Tidak ada | Operasi untuk menetapkan tag objek. Node anak: TagSet Node induk: Operation |
TagSet | Container | Ya (ketika PutObjectTagging digunakan) | Tidak ada | Koleksi kunci dan nilai tag. Node anak: Tag Node induk: PutObjectTagging |
Tag | Container | Ya | Tidak ada | Sebuah item tag. Node anak: Key dan Value Node induk: TagSet |
Key | String | Ya | Lingkungan | Kunci tag. Node anak: None Node induk: Tag |
Value | String | Ya | Produksi | Nilai tag. Node anak: None Node induk: Tag |
DeleteObjectTagging | Container | Tidak | Tidak ada | Operasi untuk menghapus tag objek. Ini adalah node kosong. Node anak: None Node induk: Operation |
PutObjectAcl | Container | Tidak | Tidak ada | Operasi untuk mengatur ACL objek. Node anak: ObjectAcl Node induk: Operation |
ObjectAcl | String | Ya (ketika PutObjectAcl digunakan) | private | ACL objek. Nilai yang valid: default, private, public-read, dan public-read-write. Node anak: None Node induk: PutObjectAcl |
RestoreObject | Container | Tidak | Tidak ada | Operasi untuk memulihkan objek yang diarsipkan. Node anak: Days dan Tier Node induk: Operation |
Days | Integer | Tidak | 7 | Jumlah hari untuk menyimpan objek Archive, Cold Archive, atau Deep Cold Archive yang telah dipulihkan agar tetap tersedia. Untuk objek Archive, rentang nilainya adalah 1 hingga 7. Untuk objek Cold Archive dan Deep Cold Archive, rentang nilainya adalah 1 hingga 365. Node anak: None Node induk: RestoreObject |
Tier | String | Tidak | Standard | Prioritas pemulihan untuk objek Cold Archive atau Deep Cold Archive. Untuk objek Cold Archive, nilai yang valid adalah Standard (2 hingga 5 jam) dan Bulk (5 hingga 12 jam). Untuk objek Deep Cold Archive, nilai yang valid adalah Standard (dalam waktu 48 jam). Node anak: None Node induk: RestoreObject |
Report | Container | Ya | Tidak ada | Node konfigurasi untuk laporan keluaran. Node anak: Bucket, Enabled, Prefix, dan ReportScope Node induk: CreateJobRequest |
Bucket | String | Ya | report-bucket | Bucket tempat laporan keluaran disimpan. Bucket tujuan harus berada di wilayah yang sama dengan pekerjaan operasi batch. Node anak: None Node induk: Report |
Enabled | Boolean | Ya | true | Menentukan apakah akan menghasilkan laporan. Node anak: None Node induk: Report |
Prefix | String | Tidak | reports/ | Awalan untuk laporan output. Ini memungkinkan Anda menyimpan laporan di subdirektori. Node anak: None Node induk: Report |
ReportScope | String | Tidak | AllTasks | Cakupan laporan. Nilai yang valid: AllTasks dan FailedTasksOnly. Nilai default: AllTasks (melaporkan semua task). Node anak: None Node induk: Report |
ClientRequestToken | String | Ya | unique-token-123 | Identifier unik untuk memastikan idempotensi permintaan. Panjangnya harus antara 1 hingga 64 karakter. Node anak: None Node induk: CreateJobRequest |
Manifest | Container | Diperlukan secara kondisional | Tidak ada | Node file manifest. Anda harus menentukan salah satu dari node ini atau KeyPrefixManifestGenerator. Node anak: Location dan Spec Node induk: CreateJobRequest |
Location | Container | Ya (ketika Manifest digunakan) | Tidak ada | Lokasi file manifest. Bucket yang berisi file manifest harus berada di Wilayah yang sama dengan batch operation job. Node anak: ETag, Bucket, Object, dan VersionId Node induk: Manifest |
ETag | String | Tidak | d41d8cd98f00b204e9800998ecf8427e | ETag dari file manifest. Node anak: None Node induk: Location |
Object | String | Ya | manifest.csv | Objek yang sesuai dengan file manifest. Node anak: None Node induk: Location |
VersionId | String | Tidak | 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo | ID versi objek yang sesuai dengan file manifest. Node anak: None Node induk: Location |
Spec | Container | Ya (ketika Manifest digunakan) | Tidak ada | Menjelaskan format file manifest. Node anak: Fields dan Format Node induk: Manifest |
Format | String | Ya | OSS_BatchOperations_CSV_20250611 | Jenis file manifest. Nilai yang valid:
Node anak: None Node induk: Spec |
Fields | String | Tidak | Bucket,Key,VersionId | Jika Anda mengunggah file CSV kustom, definisikan format CSV tersebut. Node anak: None Node induk: Spec |
KeyPrefixManifestGenerator | Container | Diperlukan secara kondisional | Tidak ada | Menghasilkan file manifest berdasarkan awalan. Anda harus menentukan salah satu dari node ini atau Manifest. Node anak: SourceBucket dan Prefix Node induk: CreateJobRequest |
SourceBucket | String | Ya (ketika KeyPrefixManifestGenerator digunakan) | source-bucket | Bucket sumber untuk file manifest. Node anak: None Node induk: KeyPrefixManifestGenerator |
Prefix | String | Tidak | prefix/ | Awalan objek yang digunakan untuk memfilter objek yang akan diproses. Node anak: None Node induk: KeyPrefixManifestGenerator |
Elemen respons
Nama | Tipe | Contoh | Deskripsi |
JobId | String | MzRjZGU2NGQ3YTY5NGRhMTkxZmZhYzY5OTM5YTcxYWU= | JobId yang dihasilkan oleh OSS untuk task tersebut. Panjangnya 44 karakter dan terdiri dari huruf (a-z, A-Z) serta angka (0-9). Tidak mengandung tanda hubung (-) atau garis bawah (_). |
Header respons
Operasi ini hanya menggunakan common response headers. Untuk informasi selengkapnya, lihat Common Response Headers.
Contoh
Permintaan contoh
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>Batch job to set object tags</Description> <Priority>10</Priority> <RoleArn>arn:acs:ram::uid:role/BatchOperationRole</RoleArn> </CreateJobRequest>Respons contoh
HTTP/1.1 200 OK <?xml version="1.0" encoding="UTF-8"?> <CreateJobResult> <JobId>MzRjZGU2NGQ3YTY5NGRhMTkxZmZhYzY5OTM5YTcxYWU=</JobId> </CreateJobResult>