Fitur Batch Operations memungkinkan Anda memproses hingga 10 miliar objek dalam satu pekerjaan. Anda dapat melakukan operasi seperti manajemen tag, modifikasi ACL, dan pemulihan data tanpa menulis kode.
Lingkup
Fitur Batch Operations tersedia penuh di wilayah China (Hangzhou), Singapura, dan Jerman (Frankfurt). Untuk menggunakan fitur ini di wilayah China (Shanghai), China (Shenzhen), China (Guangzhou), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Ulanqab), China (Chengdu), China (Hong Kong), atau Indonesia (Jakarta), hubungi Technical Support untuk mengajukan akses.
Ikhtisar operasi
Buat peran RAM: Izinkan layanan OSS membaca file manifest, menjalankan operasi batch, dan menghasilkan laporan.
Siapkan manifest input: Tentukan objek yang akan diproses menggunakan file bucket inventory (manifest.json), awalan (prefix), atau file manifest CSV (manifest.csv).
Buat pekerjaan: Konfigurasikan operasi spesifik, seperti pemberian tag, pengaturan izin, atau pemulihan objek, lalu kirimkan pekerjaan tersebut.
Kelola dan rawat pekerjaan: Pantau status pekerjaan, konfirmasi pekerjaan tertunda, lihat laporan eksekusi, serta sesuaikan prioritas atau batalkan pekerjaan bila diperlukan.
Langkah 1: Buat peran RAM
Buka Konsol RAM untuk membuat peran. Pilih Alibaba Cloud Service sebagai jenis entitas tepercaya dan Object Storage Service sebagai layanan tepercaya.
Buat dan sambungkan kebijakan kustom ke peran tersebut. Konten kebijakan adalah sebagai berikut. Ganti
your-bucketdengan nama bucket aktual Anda.{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:GetBucketInfo", "oss:ListObjects", "oss:GetObject", "oss:GetObjectTagging", "oss:PutObjectTagging", "oss:DeleteObjectTagging", "oss:PutObjectAcl", "oss:RestoreObject", "oss:PutObject" ], "Resource": [ "acs:oss:*:*:your-bucket", "acs:oss:*:*:your-bucket/*" ] } ] }Catat ARN peran tersebut, misalnya
acs:ram::<your-account-uid>:role/BatchRole. Anda akan menggunakannya pada langkah-langkah berikutnya.
Langkah 2: Siapkan manifest input
Operasi batch mengharuskan Anda menentukan objek mana yang akan diproses. Anda dapat memilih salah satu dari tiga metode berikut berdasarkan skenario Anda:
File bucket inventory: Cocok untuk operasi batch berskala besar yang diulang secara rutin.
Awalan (Prefix): Memproses semua objek dalam folder tertentu.
File manifest CSV: File CSV yang mencantumkan objek yang akan diproses.
File bucket inventory
Gunakan file manifest yang dihasilkan secara otomatis oleh Bucket Inventory.
<Manifest>
<Location>
<ETag>495B279A99C2BA72A66CA1E23B5FEA13</ETag>
<Bucket>my-bucket</Bucket>
<Object>inventory-reports/my-bucket/daily-inventory/2025-10-29T12-49Z/manifest.json</Object>
</Location>
<Spec>
<Format>OSS_InventoryReport_CSV_20250611</Format>
</Spec>
</Manifest>Deskripsi konfigurasi
ETag: Nilai ETag dari file
manifest.json.Format:
OSS_InventoryReport_CSV_20250611
Awalan (Prefix)
Menghasilkan daftar objek berdasarkan awalan yang ditentukan.
<KeyPrefixManifestGenerator>
<SourceBucket>my-bucket</SourceBucket>
<Prefix>documents/2024/</Prefix>
</KeyPrefixManifestGenerator>File manifest CSV
Mencantumkan objek tertentu menggunakan file CSV. File manifest CSV harus diunggah ke OSS dan berada di wilayah yang sama dengan pekerjaan batch.
<Manifest>
<Location>
<Bucket>my-bucket</Bucket>
<Object>manifest.csv</Object>
<ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
</Location>
<Spec>
<Format>OSS_BatchOperations_CSV_20250611</Format>
<Fields>Bucket,Key</Fields>
</Spec>
</Manifest>Deskripsi konfigurasi
ETag: Nilai ETag dari
manifest.csv.Fields: Kolom dalam file CSV.
Pengendalian versi tidak diaktifkan:
Bucket,KeyPengendalian versi diaktifkan:
Bucket,Key,VersionId
Format:
OSS_BatchOperations_CSV_20250611
Persyaratan format file CSV
Encoding file: UTF-8.
Pemisah field: Koma (,).
Encoding Object Key: Di-encode dalam bentuk URL (misalnya,
documents%2Freport1.pdf).Komentar: File CSV tidak boleh berisi baris komentar.
Contoh file CSV
Pengendalian versi tidak diaktifkan
my-bucket,documents%2Freport1.pdf my-bucket,documents%2Freport2.pdf my-bucket,images%2Fphoto1.jpgPengendalian versi diaktifkan
my-bucket,important%2Fdata.json,3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo my-bucket,config%2Fsettings.xml,null
Langkah 3: Buat pekerjaan
Ganti tag secara batch
Operasi penggantian menghapus semua tag yang ada pada objek. Setiap objek dapat memiliki hingga 10 tag, dengan panjang total kunci dan nilai tag tidak melebihi 1 KB. Kunci tag bersifat case-sensitive dan harus unik.
Jika aturan siklus hidup bergantung pada operasi ini, tinjau laporan pekerjaan akhir. Status akhir pekerjaan dapat berupa Running, Complete, Failed, Paused, atau Cancelled. Beberapa objek mungkin berhasil diproses sementara yang lain gagal. Periksa laporan untuk memastikan jumlah tugas yang berhasil dan gagal sesuai harapan Anda.
ossutil 2.0
ossutil api invoke-operation --op-name create-job --method POST --parameters batchJob --body file:///path/to/config.xml --endpoint oss-cn-hangzhou.aliyuncs.comFile bucket inventory
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<PutObjectTagging>
<TagSet>
<Tag><Key>Environment</Key><Value>Production</Value></Tag>
<Tag><Key>Team</Key><Value>DataOps</Value></Tag>
</TagSet>
</PutObjectTagging>
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>put-tag-inventory-job-001</ClientRequestToken>
<Manifest>
<Location>
<ETag>495B279A99C2BA72A66CA1E23B5FEA13</ETag>
<Bucket>my-bucket</Bucket>
<Object>inventory-reports/my-bucket/daily-inventory/2025-10-29T12-49Z/manifest.json</Object>
</Location>
<Spec>
<Format>OSS_InventoryReport_CSV_20250611</Format>
</Spec>
</Manifest>
<Description>Batch replace tags using Inventory manifest</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Prefiks
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<PutObjectTagging>
<TagSet>
<Tag><Key>Environment</Key><Value>Production</Value></Tag>
<Tag><Key>Team</Key><Value>DataOps</Value></Tag>
</TagSet>
</PutObjectTagging>
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>put-tag-job-001</ClientRequestToken>
<KeyPrefixManifestGenerator>
<SourceBucket>my-bucket</SourceBucket>
<Prefix>documents/2024/</Prefix>
</KeyPrefixManifestGenerator>
<Description>Batch replace tags for documents</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>File manifest CSV
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<PutObjectTagging>
<TagSet>
<Tag><Key>Environment</Key><Value>Production</Value></Tag>
<Tag><Key>Team</Key><Value>DataOps</Value></Tag>
</TagSet>
</PutObjectTagging>
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>put-tag-job-001</ClientRequestToken>
<Manifest>
<Location>
<ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
<Bucket>my-bucket</Bucket>
<Object>manifest.csv</Object>
</Location>
<Spec>
<Fields>Bucket,Key</Fields>
<Format>OSS_BatchOperations_CSV_20250611</Format>
</Spec>
</Manifest>
<Description>Batch replace tags for specified objects</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Contoh respons
<?xml version="1.0" encoding="UTF-8"?>
<CreateJobResult>
<JobId>ODRiZWQ5Njc5ZTE0NDE5NTlmNjJmZDlkMTk2ODI2NDU=</JobId>
</CreateJobResult>Setelah pekerjaan dibuat, statusnya menjadi Suspended. Anda dapat melihat status pekerjaan untuk memastikan konfigurasi sudah benar, lalu secara manual mengonfirmasi pekerjaan tertunda.
API
Panggil API CreateJob untuk membuat pekerjaan batch. Dalam konfigurasi XML, tentukan jenis operasi <PutObjectTagging> pada node <Operation>. Definisikan set tag baru dalam <TagSet> untuk sepenuhnya menggantikan tag yang ada pada objek.
Tambah tag secara batch
Operasi penambahan tag secara batch menambahkan tag baru ke tag yang sudah ada pada objek, sehingga mempertahankan semua tag asli. Operasi ini berguna untuk menambahkan tag tambahan. Jika kunci tag baru sama dengan kunci tag yang sudah ada, nilai tag baru akan menggantikan nilai lama. Karena operasi ini bukan operasi atomik, terdapat risiko kehilangan tag dalam skenario konkurensi tinggi. Hindari menjalankan operasi ini secara bersamaan dengan operasi tag lain untuk memastikan konsistensi data.
Jika aturan siklus hidup bergantung pada operasi ini, tinjau laporan pekerjaan akhir. Status akhir pekerjaan dapat berupa Running, Complete, Failed, Paused, atau Cancelled. Beberapa objek mungkin berhasil diproses sementara yang lain gagal. Periksa laporan untuk memastikan jumlah tugas yang berhasil dan gagal sesuai harapan Anda.
ossutil 2.0
ossutil api invoke-operation --op-name create-job --method POST --parameters batchJob --body file:///path/to/config.xml --endpoint oss-cn-hangzhou.aliyuncs.comFile bucket inventory
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<AddObjectTagging>
<TagSet>
<Tag><Key>Department</Key><Value>Engineering</Value></Tag>
<Tag><Key>Project</Key><Value>BatchOps</Value></Tag>
</TagSet>
</AddObjectTagging>
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>add-tag-inventory-job-001</ClientRequestToken>
<Manifest>
<Location>
<ETag>495B279A99C2BA72A66CA1E23B5FEA13</ETag>
<Bucket>my-bucket</Bucket>
<Object>inventory-reports/my-bucket/daily-inventory/2025-10-29T12-49Z/manifest.json</Object>
</Location>
<Spec>
<Format>OSS_InventoryReport_CSV_20250611</Format>
</Spec>
</Manifest>
<Description>Batch add tags using Inventory manifest</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Awalan (Prefix)
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<AddObjectTagging>
<TagSet>
<Tag><Key>Department</Key><Value>Engineering</Value></Tag>
<Tag><Key>Project</Key><Value>BatchOps</Value></Tag>
</TagSet>
</AddObjectTagging>
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>add-tag-job-001</ClientRequestToken>
<KeyPrefixManifestGenerator>
<SourceBucket>my-bucket</SourceBucket>
<Prefix>documents/2024/</Prefix>
</KeyPrefixManifestGenerator>
<Description>Batch add tags to documents</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>File manifest CSV
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<AddObjectTagging>
<TagSet>
<Tag><Key>Department</Key><Value>Engineering</Value></Tag>
<Tag><Key>Project</Key><Value>BatchOps</Value></Tag>
</TagSet>
</AddObjectTagging>
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>add-tag-job-001</ClientRequestToken>
<Manifest>
<Location>
<ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
<Bucket>my-bucket</Bucket>
<Object>manifest.csv</Object>
</Location>
<Spec>
<Fields>Bucket,Key</Fields>
<Format>OSS_BatchOperations_CSV_20250611</Format>
</Spec>
</Manifest>
<Description>Batch add tags to specified objects</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Contoh respons
<?xml version="1.0" encoding="UTF-8"?>
<CreateJobResult>
<JobId>Nzg5ZjE3ZTU5OGMxNDZjZDk0YjJiODMzZDZiZjA0ZmU=</JobId>
</CreateJobResult>Setelah pekerjaan dibuat, statusnya menjadi Suspended. Anda dapat melihat status pekerjaan untuk memastikan konfigurasi sudah benar, lalu secara manual mengonfirmasi pekerjaan tertunda.
API
Panggil API CreateJob untuk membuat pekerjaan batch. Dalam konfigurasi XML, tentukan jenis operasi <AddObjectTagging> pada node <Operation>. Definisikan tag baru dalam <TagSet>. Sistem akan menambahkan tag baru sambil mempertahankan tag yang sudah ada.
Hapus tag secara batch
Operasi penghapusan tag secara batch menghapus semua tag dari objek yang ditentukan. Setelah operasi ini, objek tidak akan memiliki tag lagi. Operasi ini berguna untuk membersihkan tag.
Operasi ini tidak dapat dikembalikan. Setelah dijalankan, tag yang dihapus tidak dapat dipulihkan. Uji operasi ini di lingkungan staging sebelum menjalankannya di lingkungan produksi untuk memastikan tidak memengaruhi logika bisnis Anda.
Jika aturan siklus hidup bergantung pada operasi ini, tinjau laporan pekerjaan akhir. Status akhir pekerjaan dapat berupa Running, Complete, Failed, Paused, atau Cancelled. Beberapa objek mungkin berhasil diproses sementara yang lain gagal. Periksa laporan untuk memastikan jumlah tugas yang berhasil dan gagal sesuai harapan Anda.
ossutil 2.0
ossutil api invoke-operation --op-name create-job --method POST --parameters batchJob --body file:///path/to/config.xml --endpoint oss-cn-hangzhou.aliyuncs.comFile bucket inventory
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<DeleteObjectTagging />
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>delete-tag-inventory-job-001</ClientRequestToken>
<Manifest>
<Location>
<ETag>495B279A99C2BA72A66CA1E23B5FEA13</ETag>
<Bucket>my-bucket</Bucket>
<Object>inventory-reports/my-bucket/daily-inventory/2025-10-29T12-49Z/manifest.json</Object>
</Location>
<Spec>
<Format>OSS_InventoryReport_CSV_20250611</Format>
</Spec>
</Manifest>
<Description>Batch delete tags using Inventory manifest</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Awalan (Prefix)
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<DeleteObjectTagging />
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>delete-tag-job-001</ClientRequestToken>
<KeyPrefixManifestGenerator>
<SourceBucket>my-bucket</SourceBucket>
<Prefix>documents/2024/</Prefix>
</KeyPrefixManifestGenerator>
<Description>Batch delete tags for documents</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>File manifest CSV
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<DeleteObjectTagging />
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>delete-tag-job-001</ClientRequestToken>
<Manifest>
<Location>
<ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
<Bucket>my-bucket</Bucket>
<Object>manifest.csv</Object>
</Location>
<Spec>
<Fields>Bucket,Key</Fields>
<Format>OSS_BatchOperations_CSV_20250611</Format>
</Spec>
</Manifest>
<Description>Batch delete tags for specified objects</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Contoh respons
<?xml version="1.0" encoding="UTF-8"?>
<CreateJobResult>
<JobId>NTVlYmQ4ZmQyOTM0NDJmY2E2NmNjYTUwNjU1ZGRkMGM=</JobId>
</CreateJobResult>Setelah pekerjaan dibuat, statusnya menjadi Suspended. Anda dapat melihat status pekerjaan untuk memastikan konfigurasi sudah benar, lalu secara manual mengonfirmasi pekerjaan tertunda.
API
Panggil API CreateJob untuk membuat pekerjaan batch. Dalam konfigurasi XML, tentukan jenis operasi <DeleteObjectTagging/> (tanpa parameter tambahan) pada node <Operation>. Sistem akan menghapus semua tag dari objek yang ditentukan.
Modifikasi izin secara batch
Modifikasi izin secara batch mendukung empat jenis daftar kontrol akses (ACL): private (hanya pemilik yang dapat membaca dan menulis), public-read (siapa saja dapat membaca, tetapi hanya pemilik yang dapat menulis), public-read-write (siapa saja dapat membaca dan menulis), dan default (mewarisi izin dari bucket). Perubahan izin berlaku segera dan langsung memengaruhi akses objek. Pilih jenis izin yang sesuai dengan kebutuhan bisnis Anda.
ossutil 2.0
ossutil api invoke-operation --op-name create-job --method POST --parameters batchJob --body file:///path/to/config.xml --endpoint oss-cn-hangzhou.aliyuncs.comFile bucket inventory
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<PutObjectAcl>
<ObjectAcl>private</ObjectAcl>
</PutObjectAcl>
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>acl-inventory-job-001</ClientRequestToken>
<Manifest>
<Location>
<ETag>495B279A99C2BA72A66CA1E23B5FEA13</ETag>
<Bucket>my-bucket</Bucket>
<Object>inventory-reports/my-bucket/daily-inventory/2025-10-29T12-49Z/manifest.json</Object>
</Location>
<Spec>
<Format>OSS_InventoryReport_CSV_20250611</Format>
</Spec>
</Manifest>
<Description>Batch change ACL using Inventory manifest</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Awalan (Prefix)
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<PutObjectAcl>
<ObjectAcl>private</ObjectAcl>
</PutObjectAcl>
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>acl-job-001</ClientRequestToken>
<KeyPrefixManifestGenerator>
<SourceBucket>my-bucket</SourceBucket>
<Prefix>documents/2024/</Prefix>
</KeyPrefixManifestGenerator>
<Description>Batch change ACL to private for documents</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>File manifest CSV
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<PutObjectAcl>
<ObjectAcl>private</ObjectAcl>
</PutObjectAcl>
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>acl-job-001</ClientRequestToken>
<Manifest>
<Location>
<ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
<Bucket>my-bucket</Bucket>
<Object>manifest.csv</Object>
</Location>
<Spec>
<Fields>Bucket,Key</Fields>
<Format>OSS_BatchOperations_CSV_20250611</Format>
</Spec>
</Manifest>
<Description>Batch change ACL to private for specified objects</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Contoh respons
<?xml version="1.0" encoding="UTF-8"?>
<CreateJobResult>
<JobId>YWNsR29iMTIzNDU2Nzg5MA==</JobId>
</CreateJobResult>Setelah pekerjaan dibuat, statusnya menjadi Suspended. Lihat status pekerjaan untuk memastikan konfigurasi sudah benar, lalu secara manual konfirmasi pekerjaan tertunda.
API
Panggil API CreateJob untuk membuat pekerjaan batch. Dalam konfigurasi XML, tentukan jenis operasi <PutObjectAcl> pada node <Operation>, lalu atur izin target (private/public-read/public-read-write/default) menggunakan parameter <ObjectAcl>.
Pemulihan data secara batch
Operasi pemulihan batch mendukung objek dalam kelas penyimpanan Archive, ColdArchive, dan DeepColdArchive. Pemulihan objek Archive biasanya selesai dalam waktu satu jam, dan objek yang dipulihkan tetap dapat diakses selama 1 hingga 7 hari. Kelas penyimpanan ColdArchive mendukung mode Standard (2–5 jam) dan mode Bulk (5–12 jam). Kelas penyimpanan DeepColdArchive hanya mendukung mode Standard, yang memerlukan waktu hingga 48 jam untuk diselesaikan. Anda dapat mengatur durasi akses objek yang dipulihkan antara 1 hingga 365 hari.
Jika kelas penyimpanan objek tidak sesuai dengan mode pemulihan atau jumlah hari yang ditentukan, operasi untuk objek tersebut akan gagal.
ossutil 2.0
ossutil api invoke-operation --op-name create-job --method POST --parameters batchJob --body file:///path/to/config.xml --endpoint oss-cn-hangzhou.aliyuncs.comFile bucket inventory
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<RestoreObject>
<Days>7</Days>
<Tier>Standard</Tier>
</RestoreObject>
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>restore-inventory-job-001</ClientRequestToken>
<Manifest>
<Location>
<ETag>495B279A99C2BA72A66CA1E23B5FEA13</ETag>
<Bucket>my-bucket</Bucket>
<Object>inventory-reports/my-bucket/daily-inventory/2025-10-29T12-49Z/manifest.json</Object>
</Location>
<Spec>
<Format>OSS_InventoryReport_CSV_20250611</Format>
</Spec>
</Manifest>
<Description>Batch restore using Inventory manifest for 7 days</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Awalan (Prefix)
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<RestoreObject>
<Days>7</Days>
<Tier>Standard</Tier>
</RestoreObject>
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>restore-job-001</ClientRequestToken>
<KeyPrefixManifestGenerator>
<SourceBucket>my-bucket</SourceBucket>
<Prefix>archive/2024/</Prefix>
</KeyPrefixManifestGenerator>
<Description>Batch restore archive objects for 7 days</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>File manifest CSV
<CreateJobRequest>
<ConfirmationRequired>true</ConfirmationRequired>
<Operation>
<RestoreObject>
<Days>7</Days>
<Tier>Standard</Tier>
</RestoreObject>
</Operation>
<Report>
<Bucket>my-bucket</Bucket>
<Enabled>true</Enabled>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<ClientRequestToken>restore-job-001</ClientRequestToken>
<Manifest>
<Location>
<ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
<Bucket>my-bucket</Bucket>
<Object>manifest.csv</Object>
</Location>
<Spec>
<Fields>Bucket,Key</Fields>
<Format>OSS_BatchOperations_CSV_20250611</Format>
</Spec>
</Manifest>
<Description>Batch restore specified archive objects for 7 days</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Contoh respons
<?xml version="1.0" encoding="UTF-8"?>
<CreateJobResult>
<JobId>cmVzdG9yZUpvYjEyMzQ1Njc4OTA=</JobId>
</CreateJobResult>Setelah pekerjaan dibuat, statusnya diatur menjadi Suspended. Anda dapat melihat status pekerjaan untuk memastikan konfigurasi sudah benar, lalu secara manual mengonfirmasi pekerjaan untuk dieksekusi.
API
Panggil API CreateJob untuk membuat pekerjaan batch. Dalam konfigurasi XML, tentukan operasi <RestoreObject> pada node <Operation>. Atur jumlah hari objek yang dipulihkan dapat diakses (1 hingga 365) menggunakan parameter <Days>, serta mode pemulihan (Standard atau Bulk) menggunakan parameter <Tier>.
Langkah 4: Manajemen dan O&M pekerjaan
Lihat status pekerjaan
Setelah membuat pekerjaan, Anda dapat memantau dan mengonfirmasi statusnya dengan melakukan kueri terhadap detailnya. Detail pekerjaan memberikan gambaran lengkap mengenai status pekerjaan, termasuk progres eksekusi dan parameter konfigurasi.
Status pekerjaan Complete tidak menjamin bahwa semua objek berhasil diproses. Anda harus memeriksa laporan detail untuk mengonfirmasi hasil akhirnya.
ossutil 2.0
ossutil api invoke-operation --op-name describe-job --method GET --parameters batchJob --parameters batchJobId=<JobId> --endpoint oss-cn-hangzhou.aliyuncs.comContoh respons
<?xml version="1.0" encoding="UTF-8"?>
<DescribeJobResult>
<Job>
<ConfirmationRequired>true</ConfirmationRequired>
<CreationTime>1761723644</CreationTime>
<FailureReasons>
<JobFailure />
</FailureReasons>
<JobId>M2E0ODMyNmJjYmYzNGY0ZThiYjMyMmI1ZDE1YWE0OGE=</JobId>
<Operation>
<PutObjectTagging>
<TagSet>
<Tag>
<Key>Environment</Key>
<Value>Production</Value>
</Tag>
<Tag>
<Key>Team</Key>
<Value>DataOps</Value>
</Tag>
</TagSet>
</PutObjectTagging>
</Operation>
<Report>
<Enabled>true</Enabled>
<Bucket>my-bucket</Bucket>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>
<Manifest>
<Location>
<ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
<Bucket>my-bucket</Bucket>
<Object>manifest.csv</Object>
</Location>
<Spec>
<Format>OSS_BatchOperations_CSV_20250611</Format>
<Fields>Bucket,Key</Fields>
</Spec>
</Manifest>
<Description>Test task for Suspended status</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
<ProgressSummary>
<NumberOfTasksFailed>0</NumberOfTasksFailed>
<NumberOfTasksSucceeded>0</NumberOfTasksSucceeded>
<TotalNumberOfTasks>3</TotalNumberOfTasks>
<Timers>
<ElapsedTimeInActiveSeconds>-1</ElapsedTimeInActiveSeconds>
</Timers>
</ProgressSummary>
<Status>Suspended</Status>
<TerminationDate>-1</TerminationDate>
</Job>
</DescribeJobResult>Deskripsi status:
ConfirmationRequired: true– Konfirmasi diperlukan.Status: Suspended– Pekerjaan dijeda dan menunggu konfirmasi pengguna.TotalNumberOfTasks: 3– Pekerjaan akan memproses 3 objek.NumberOfTasksSucceeded: 0– Pekerjaan belum dimulai.ElapsedTimeInActiveSeconds: -1– Waktu eksekusi bernilai -1 karena pekerjaan belum dimulai.
API
Anda dapat memanggil API DescribeJob untuk mengambil informasi detail tentang pekerjaan tertentu, termasuk status eksekusi, statistik progres, parameter konfigurasi, dan pesan kesalahan.
Konfirmasi pekerjaan tertunda
Anda dapat mengubah status pekerjaan dari Suspended menjadi Ready untuk memasukkannya ke antrian eksekusi. Jika pekerjaan tidak dikonfirmasi dalam 14 hari, statusnya akan berubah secara otomatis menjadi Failed.
ossutil 2.0
ossutil api invoke-operation --op-name update-job-status --method POST --parameters batchJobStatus --parameters batchJobId=<JobId> --parameters requestedJobStatus=Ready --endpoint oss-cn-hangzhou.aliyuncs.comContoh respons
<?xml version="1.0" encoding="UTF-8"?>
<UpdateJobStatusResult>
<JobId>NGFhNmFmZDRlNTcxNDE2OGFhY2FjYWQyNDcxYjc3YzM=</JobId>
<Status>Ready</Status>
</UpdateJobStatusResult>API
Anda dapat memanggil API UpdateJobStatus untuk mengonfirmasi pekerjaan agar dieksekusi, yang akan mengubah status pekerjaan dari Suspended menjadi Ready dan memasukkannya ke antrian eksekusi.
Daftar pekerjaan secara batch
Anda dapat melihat semua pekerjaan dan menggunakan fitur kueri batch untuk menyaring daftar berdasarkan status serta rentang waktu pembuatan. Anda juga dapat membatasi jumlah hasil dan menggunakan kueri berhalaman guna mengelola banyak pekerjaan. Secara default, hasil diurutkan berdasarkan waktu pembuatan secara menurun, dengan pekerjaan terbaru ditampilkan lebih dahulu.
ossutil 2.0
ossutil api invoke-operation --op-name list-jobs --method GET --parameters batchJob --parameters maxKeys=100 --endpoint oss-cn-hangzhou.aliyuncs.comContoh respons
<?xml version="1.0" encoding="UTF-8"?>
<ListJobsResult>
<Jobs>
<Job>
<JobId>OTE5ZGU1NWMxNjkyNGFkMjhkYTNmOGEzNTU2YmJiOWE=</JobId>
<Status>Complete</Status>
<CreationTime>1761666548</CreationTime>
</Job>
</Jobs>
</ListJobsResult>API
Panggil API ListJobs untuk mengkueri daftar pekerjaan batch di akun Anda. API ini memungkinkan Anda menyaring hasil berdasarkan status dan rentang waktu, serta menggunakan kueri berhalaman guna memudahkan manajemen dan pemantauan pekerjaan.
Sesuaikan prioritas pekerjaan
Nilai prioritas berkisar dari 0 hingga 2.147.483.647, dengan nilai yang lebih tinggi menunjukkan prioritas yang lebih tinggi. Prioritas pekerjaan tidak menjamin urutan eksekusi yang ketat; sebaliknya, OSS berusaha mengalokasikan lebih banyak sumber daya ke pekerjaan dengan prioritas lebih tinggi.
ossutil 2.0
ossutil api invoke-operation --op-name update-job-priority --method POST --parameters batchJobPriority --parameters batchJobId=<JobId> --parameters priority=1000 --endpoint oss-cn-hangzhou.aliyuncs.comContoh respons
<?xml version="1.0" encoding="UTF-8"?>
<UpdateJobPriorityResult>
<JobId>OTE5ZGU1NWMxNjkyNGFkMjhkYTNmOGEzNTU2YmJiOWE=</JobId>
<Priority>1000</Priority>
</UpdateJobPriorityResult>API
Anda dapat memanggil API UpdateJobPriority untuk menyesuaikan prioritas eksekusi pekerjaan, yang berguna dalam penjadwalan sumber daya dan pemrosesan pekerjaan mendesak.
Batalkan pekerjaan
Anda dapat menghentikan pekerjaan yang sedang berjalan atau menunggu untuk dijalankan. Operasi yang telah selesai pada objek tidak dapat dikembalikan.
ossutil 2.0
ossutil api invoke-operation --op-name update-job-status --method POST --parameters batchJob --parameters batchJobId=<JobId> --parameters requestedJobStatus=Cancelled --endpoint oss-cn-hangzhou.aliyuncs.comContoh respons
<?xml version="1.0" encoding="UTF-8"?>
<UpdateJobStatusResult>
<JobId>OTE5ZGU1NWMxNjkyNGFkMjhkYTNmOGEzNTU2YmJiOWE=</JobId>
<Status>Cancelled</Status>
</UpdateJobStatusResult>API
Anda dapat memanggil API UpdateJobStatus untuk mengatur status pekerjaan menjadi Cancelled, yang akan menghentikan pekerjaan dan melepaskan sumber dayanya.
Lihat laporan pekerjaan
Setelah pekerjaan selesai, sistem menghasilkan laporan eksekusi detail di jalur yang ditentukan. Laporan tersebut terdiri dari dua file utama: manifes bernama manifest.json dan laporan detail dalam format CSV. Kedua file ini menyediakan status pemrosesan, kode respons HTTP, serta alasan kegagalan untuk setiap objek, yang dapat digunakan untuk troubleshooting dan validasi hasil.
Terlepas dari status pekerjaan (Running, Complete, Failed, Paused, atau Cancelled), pekerjaan tersebut mungkin tetap berisi objek yang berhasil diproses dan objek yang gagal. Selalu periksa laporan detail untuk mengonfirmasi hasil eksekusi sebenarnya.
Lokasi penyimpanan laporan
File laporan disimpan di jalur yang Anda tentukan dalam node <Report> saat membuat pekerjaan. Format jalurnya adalah:
<Bucket>/<Prefix>/<JobId>/results/Sebagai contoh, jika Anda menetapkan konfigurasi berikut saat membuat pekerjaan:
<Report>
<Bucket>my-bucket</Bucket>
<Prefix>batch-reports/</Prefix>
<ReportScope>AllTasks</ReportScope>
</Report>maka file laporan akan disimpan di jalur berikut: my-bucket/batch-reports/<JobId>/results/.
Struktur file laporan
Laporan terdiri dari dua bagian:
1. File manifes laporan (manifest.json)
File JSON ini berisi metadata laporan dan lokasi file laporan CSV.
Contoh file manifes untuk pekerjaan yang berhasil:
{
"Format": "Report_CSV_20250901",
"ReportCreationDate": "2025-10-31T07:18:56Z",
"Results": [
{
"TaskExecutionStatus": "succeeded",
"Bucket": "test-bucket",
"MD5Checksum": "\"424356315f4a82c1b6a4c190dbed15d9\"",
"Key": "reports/prefix-job-0/job-MTRiZGI1NDFiMTI2NDFiNDg0YWQyYTM2YmY1NzNjNDM=/results/report-0.csv"
}
],
"ReportSchema": "Bucket,Key,VersionId,HTTPStatus,Error"
}Contoh file manifes untuk pekerjaan yang gagal:
{
"Format": "Report_CSV_20250901",
"ReportCreationDate": "2025-10-31T07:37:56Z",
"Results": [
{
"TaskExecutionStatus": "failed",
"Bucket": "test-bucket",
"MD5Checksum": "\"85749f22b5b62b161daf00b4adcf6da7\"",
"Key": "reports/prefix-job-0/job-M2E4MDkwNGJmNmQzNDgwYmE4ODI1YjdjNDgyNjk5NmM=/results/report-0.csv"
}
],
"ReportSchema": "Bucket,Key,VersionId,HTTPStatus,Error"
}Deskripsi field:
Format: Versi format laporan. Nilainya tetapReport_CSV_20250901.ReportCreationDate: Waktu pembuatan laporan dalam UTC.TaskExecutionStatus: Status eksekusi keseluruhan pekerjaan. Nilaisucceededmenunjukkan semua tugas berhasil, sedangkan nilaifailedmenunjukkan semua tugas gagal.ReportSchema: Definisi kolom untuk file laporan CSV.
2. File laporan detail CSV
File ini berisi hasil pemrosesan detail untuk setiap objek dan mencakup kolom-kolom berikut:
Bucket: Bucket tempat objek berada.Key: Nama objek, yang di-encode dalam bentuk URL.VersionId: ID versi objek. Field ini kosong jika pengendalian versi tidak diaktifkan untuk bucket.HTTPStatus: Kode status respons HTTP. Nilai 200 menunjukkan keberhasilan.Error: Deskripsi kesalahan. Field ini kosong jika tugas berhasil.
Contoh laporan CSV untuk tugas yang berhasil:
test-bucket,batchOperation%2F1761895099%2Fobject-1.txt,,200,
test-bucket,batchOperation%2F1761895099%2Fobject-9.txt,,200,
test-bucket,batchOperation%2F1761895099%2Fobject-4.txt,,200,
test-bucket,batchOperation%2F1761895099%2Fobject-8.txt,,200,
test-bucket,batchOperation%2F1761895099%2Fobject-3.txt,,200,Contoh laporan CSV untuk tugas yang gagal:
test-bucket,batchOperation%2F1761896253%2Fobject-0.txt,,403,"Error returned by Service. {""EC"":""0003-00000001"",""Error Code"":""AccessDenied"",""Http Status Code"":403,""Message"":""You have no right to access this object."",""Request Endpoint"":""PUT http://test-bucket.oss-cn-hangzhou-internal.aliyuncs.com/batchOperation/1761896253/object-0.txt?tagging"",""Request Id"":""690467520D9F2E3232004FFD"",""Timestamp"":""2025-10-31T07:37:54Z""}"
test-bucket,batchOperation%2F1761896253%2Fobject-7.txt,,403,"Error returned by Service. {""EC"":""0003-00000001"",""Error Code"":""AccessDenied"",""Http Status Code"":403,""Message"":""You have no right to access this object."",""Request Endpoint"":""PUT http://test-bucket.oss-cn-hangzhou-internal.aliyuncs.com/batchOperation/1761896253/object-7.txt?tagging"",""Request Id"":""69046752A016113937EB7029"",""Timestamp"":""2025-10-31T07:37:54Z""}"Unduh dan analisis laporan
Temukan file laporan: Panggil API DescribeJob untuk mengambil detail pekerjaan. Jalur laporan terdapat di node
<Report>pada respons.Unduh manifest.json: Unduh file manifes dari jalur laporan. Periksa node
TaskExecutionStatusdanResultsuntuk menentukan status eksekusi keseluruhan.Unduh laporan CSV: Unduh file laporan CSV detail dari jalur yang ditentukan di field
Results[ ].Keypada file manifest.json.Analisis hasil eksekusi:
Periksa kolom
HTTPStatus: Kode status 2xx menunjukkan keberhasilan, sedangkan kode status 4xx dan 5xx menunjukkan kegagalan.Untuk catatan yang gagal, periksa kolom
Erroruntuk mendapatkan kode kesalahan dan detail kesalahan.Hitung jumlah objek yang berhasil dan gagal, lalu bandingkan dengan
ProgressSummaryyang dikembalikan oleh operasi DescribeJob untuk memverifikasi hasilnya.
Contoh: Unduh laporan menggunakan ossutil
# Unduh file manifes laporan
ossutil cp oss://my-bucket/batch-reports/<JobId>/results/manifest.json ./
# Unduh laporan CSV detail
ossutil cp oss://my-bucket/batch-reports/<JobId>/results/report-0.csv ./Kode kesalahan umum
Kode status HTTP | Kode kesalahan | Deskripsi | Solusi |
403 |
| Izin tidak mencukupi untuk mengakses objek. | Periksa konfigurasi izin peran IAM |
404 |
| Objek tidak ada. | Konfirmasi bahwa jalur objek dalam file manifest benar. |
400 |
| Argumen yang diberikan tidak valid. | Periksa parameter operasi, seperti format tag atau jenis ACL. |
409 |
| Status objek tidak memenuhi persyaratan operasi. | Konfirmasi bahwa kelas penyimpanan objek sesuai dengan jenis operasi. |
Catatan
File laporan mengonsumsi ruang penyimpanan dan dikenai biaya penyimpanan. Bersihkan laporan historis secara berkala.
File laporan CSV untuk pekerjaan berskala besar dapat berukuran sangat besar. Pertimbangkan lebar pita jaringan Anda sebelum mengunduhnya.
Jika Anda mengatur
ReportScopekeFailedTasksOnly, laporan hanya mencakup objek yang gagal.
Going live
Praktik terbaik
Strategi perencanaan pekerjaan
Kontrol skala: Batasi jumlah objek dalam satu pekerjaan menjadi kurang dari 100 juta untuk memastikan eksekusi yang stabil. Pisahkan pemrosesan data berskala besar menjadi beberapa pekerjaan guna mengurangi titik kegagalan tunggal.
Manajemen prioritas: Tetapkan prioritas pekerjaan yang wajar agar pekerjaan penting tidak terblokir. Perkirakan waktu eksekusi untuk menjadwalkan jendela pemeliharaan secara tepat.
Catatan tentang operasi konkuren: Saat beberapa pekerjaan beroperasi pada batch objek yang sama secara bersamaan, urutan eksekusi tidak dijamin. Hindari menjalankan operasi konkuren pada objek yang sama.
Langkah optimasi kinerja
Optimasi file manifest: Susun struktur file manifest agar tidak menghasilkan file tunggal yang terlalu besar, karena hal ini dapat memperlambat penguraian.
Pemanfaatan kuota QPS: Manfaatkan sepenuhnya kuota QPS independen untuk memastikan panggilan API bisnis tidak terpengaruh. Operasi batch tidak mengonsumsi kuota QPS Anda.
Kontrol konkurensi: Batasi jumlah pekerjaan yang berjalan secara bersamaan menjadi tiga atau kurang guna menghindari persaingan sumber daya.
Penghindaran hot spot: Jika terdapat hot spot—misalnya awalan yang diurutkan secara leksikografis—dalam rentang operasi, kecepatan eksekusi operasi batch dapat terganggu. Dalam kasus parah, hal ini dapat menyebabkan beberapa operasi file gagal.
Mekanisme penanganan kesalahan
Laporan detail: Aktifkan laporan detail (ReportScope=AllTasks) untuk memperoleh hasil eksekusi lengkap guna troubleshooting.
Mekanisme retry: Dalam kasus langka, jika operasi batch mengalami masalah selama eksekusi, sistem akan mencoba ulang beberapa kali. Biaya permintaan API akhir didasarkan pada jumlah total panggilan API yang dilakukan.
Ambang batas kegagalan: Jika tingkat kegagalan tugas dalam pekerjaan melebihi 20%, seluruh pekerjaan langsung gagal dan berhenti berjalan.
Anomali konfirmasi status: Dalam kasus langka, beberapa operasi mungkin berhasil tetapi dicatat sebagai gagal dalam laporan eksekusi. Periksa kembali item yang ditandai sebagai gagal.
Poin penting untuk konfirmasi hasil
Verifikasi integritas eksekusi: Pekerjaan dapat memiliki salah satu status berikut: Running, Complete, Failed, Paused, atau Cancelled. Beberapa objek mungkin telah berhasil diproses, sementara yang lain gagal. Periksa jumlah tugas yang berhasil dan gagal dalam laporan untuk memastikan hasil sesuai harapan Anda.
Saran penanganan kegagalan:
Status Complete hanya menunjukkan bahwa pekerjaan telah selesai, bukan bahwa semua objek berhasil diproses. Anda harus memeriksa laporan eksekusi untuk detailnya.
Analisis penyebab tugas yang gagal dan coba ulang. Untuk pekerjaan dengan kegagalan parsial, Anda dapat membuat pekerjaan ulang berdasarkan laporan kegagalan.
Untuk pekerjaan dengan status Cancelled, Paused, atau Failed, beberapa objek mungkin telah berhasil diproses. Anda harus memverifikasi hasilnya.
Catatan tentang file manifest
Urutan eksekusi dan konsistensi data
Urutan eksekusi: Operasi batch dilakukan pada item dalam daftar manifest, tetapi urutan eksekusi tidak dijamin.
Pembaruan file: Jika objek diperbarui sebelum tindakan dilakukan, pekerjaan beroperasi pada file yang diperbarui. Jangan memodifikasi file saat pekerjaan batch sedang berjalan.
Keterbatasan metode awalan: Jika Anda menggunakan awalan untuk menyediakan manifest input, operasi batch tidak dapat mendeteksi file yang ditambahkan atau dihapus selama eksekusi. Jangan menambahkan atau menghapus file di bawah awalan saat pekerjaan batch sedang berjalan.
Persyaratan format file manifest
Encoding URL: Kunci objek dalam file manifest CSV harus di-encode dalam bentuk URL. Jika tidak, penguraian dapat gagal.
Penanganan kunci duplikat: Jika file manifest berisi kunci duplikat, operasi batch dilakukan beberapa kali, tetapi urutan operasi tidak dijamin.
Mekanisme penjadwalan sumber daya
Penjadwalan prioritas
Prioritas pekerjaan didukung, dengan nilai berkisar dari 0 hingga 2.147.483.647.
Kontrol konkurensi
Satu akun dapat menjalankan maksimal enam pekerjaan secara bersamaan. Pekerjaan tambahan ditempatkan dalam antrian tunggu.
Transisi status pekerjaan
Status Complete hanya menunjukkan bahwa proses pekerjaan telah selesai. Ini tidak berarti semua objek berhasil diproses.
Untuk pekerjaan dengan status Cancelled, Paused, atau Failed, beberapa objek mungkin telah berhasil diproses.
Selalu periksa jumlah tugas yang berhasil dan gagal dalam laporan eksekusi untuk mengonfirmasi hasil sebenarnya.
Status | Deskripsi | Tindakan pengguna |
New | Pekerjaan telah dibuat dan parameternya sedang diverifikasi. | Tidak ada |
Preparing | Sistem sedang mengurai manifest, memverifikasi parameter, dan menghitung jumlah total file. | Batalkan pekerjaan. |
Suspended | Pekerjaan dijeda dan menunggu konfirmasi pengguna. Pekerjaan akan gagal secara otomatis jika tidak dikonfirmasi dalam 14 hari. | Konfirmasi atau batalkan pekerjaan. |
Ready | Pekerjaan berada dalam antrian, menunggu penjadwalan sumber daya. | Batalkan pekerjaan. |
Active | Pekerjaan sedang berjalan. Status ini mencakup: | Batalkan pekerjaan. |
Pausing | Pekerjaan sedang dijeda karena kendala sumber daya. | Batalkan pekerjaan. |
Paused | Pekerjaan dijeda dan akan dilanjutkan saat sumber daya tersedia. | Batalkan pekerjaan. |
Complete | Pekerjaan selesai. Catatan: Ini tidak berarti semua objek berhasil diproses. | Lihat laporan. |
Cancelling | Pembatalan telah dimulai. Sistem sedang membersihkan tugas yang sedang berjalan. | Tidak ada |
Cancelled | Pekerjaan telah dibatalkan. | Lihat laporan. |
Failing | Pekerjaan sedang dihentikan karena parameter tidak valid atau tingkat kegagalan melebihi 20%. | Tidak ada |
Failed | Pekerjaan gagal. | Lihat laporan. |
Cleaning | Data pekerjaan sedang dibersihkan. Status ini tidak terlihat oleh pengguna. | Tidak ada |
Cleaned | Pembersihan data pekerjaan selesai. Status ini tidak terlihat oleh pengguna. | Tidak ada |
Strategi toleransi kesalahan
Validasi izin
Validasi izin akses untuk jalur sumber sebelum membuat pekerjaan guna mencegah gangguan eksekusi.
Pastikan peran IAM memiliki semua izin yang diperlukan untuk operasi target.
Rotasi AccessKey untuk peran IAM secara berkala guna meningkatkan keamanan.
Proteksi data
Buat snapshot atau backup data sebelum melakukan operasi penghapusan atau penimpaan batch.
Aktifkan pengendalian versi untuk data penting guna memastikan perlindungan multi-versi.
Verifikasi logika operasi di lingkungan staging sebelum mengeksekusinya di lingkungan produksi.
Pemantauan dan peringatan
Konfigurasikan notifikasi event untuk perubahan status pekerjaan agar tetap mendapat informasi tentang progres eksekusi.
Pantau waktu eksekusi pekerjaan untuk mendeteksi pekerjaan yang berjalan terlalu lama.
Atur peringatan ambang batas untuk tingkat kegagalan guna merespons anomali dengan cepat.
Kontrol biaya
Metode penagihan
Fitur ini menggunakan model bayar sesuai penggunaan dan dikenai biaya CNY 1 per 1 juta objek yang diproses.
Tidak ada biaya untuk pembuatan atau manajemen pekerjaan. Anda hanya membayar jumlah objek yang diproses.
Ini dapat mengurangi biaya operasi lebih dari 90% dibandingkan dengan memanggil API untuk setiap objek secara individual.
Saran optimasi
Manfaatkan sepenuhnya batas enam pekerjaan konkuren untuk mencegah idle sumber daya.
Hapus laporan pekerjaan historis secara berkala untuk mengurangi biaya penyimpanan.
Bersihkan pekerjaan uji segera untuk menghindari pengeluaran yang tidak perlu.
Kuota dan batasan
Item | Batas |
Pekerjaan konkuren per akun | 6 |
Pekerjaan dalam antrian per akun | Umumnya 1.000 per wilayah |
Objek maksimum per pekerjaan | 10 miliar |
Ukuran file manifest maksimum | 10 TB |
Objek yang diproses per akun per hari | Umumnya 1 miliar per wilayah |
Periode retensi riwayat pekerjaan | Umumnya 30 hari atau 10.000 catatan |
Deskripsi penagihan
OSS Batch Operations adalah layanan pay-as-you-go. Anda dikenai biaya CNY 1 untuk setiap 1 juta objek yang diproses, tanpa biaya tambahan untuk pembuatan pekerjaan, manajemen, atau transfer data.
Biaya API OSS standar juga berlaku untuk operasi pada objek. Misalnya, operasi tagging dikenai biaya permintaan PUT.
Contoh penagihan:
Tagging batch untuk 5 juta objek: 5 juta / 1 juta × CNY 1 = CNY 5
Pemrosesan data berskala besar untuk 5 miliar objek: 5 miliar / 1 juta × CNY 1 = CNY 5.000
Saran optimasi biaya: Gabungkan operasi batch terkait menjadi satu pekerjaan untuk mengurangi overhead manajemen. Gunakan awalan atau file manifest yang tepat untuk menghindari pemrosesan objek yang tidak perlu. Jadwalkan operasi batch yang tidak mendesak di luar jam bisnis puncak.
FAQ
Mengapa pekerjaan saya terjebak dalam status Preparing untuk waktu yang lama?
Kemungkinan penyebabnya meliputi:
File manifest terlalu besar dan memerlukan waktu lama untuk diurai.
Pemindaian awalan mencakup banyak objek.
Beban sistem tinggi dan antrian pemrosesan sibuk.
Untuk mengatasinya, Anda dapat membagi pekerjaan besar menjadi pekerjaan yang lebih kecil atau menggunakan file manifest yang telah dihasilkan sebelumnya.
Apa yang harus saya lakukan jika beberapa objek gagal diproses?
Ikuti langkah-langkah berikut:
Unduh laporan eksekusi pekerjaan dan analisis penyebab kegagalannya.
Buat pekerjaan ulang baru berdasarkan daftar objek yang gagal.
Verifikasi bahwa konfigurasi izin benar dan peran IAM memiliki izin penuh.
Bagaimana cara membatalkan pekerjaan yang sedang berjalan?
Anda dapat menggunakan perintah berikut:
POST /?batchJobStatus&batchJobId=<JobId>&requestedJobStatus=Cancelled&statusUpdateReason=User cancelled HTTP/1.1
Host: oss-cn-hangzhou.aliyuncs.com
Authorization: <Signature information>Mengapa saya mendapatkan kesalahan permission denied?
Periksa konfigurasi izin berikut:
Pastikan pengguna RAM memiliki izin
oss:CreateBatchJob.Verifikasi bahwa peran IAM memiliki izin yang diperlukan untuk operasi tersebut.
Verifikasi pengaturan izin bucket tujuan untuk operasi lintas bucket.
Persyaratan Konfigurasi Peran IAM?
Peran IAM harus mencakup hal-hal berikut:
Izin baca dan tulis untuk sumber daya OSS.
Izin untuk memanggil API Batch Operations.
Izin menulis untuk bucket penyimpanan laporan.
Contoh kebijakan kepercayaan:
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": ["oss.aliyuncs.com"]
}
}
]
}Bagaimana cara meningkatkan kecepatan eksekusi operasi batch?
Saran optimasi:
Strukturkan file manifest Anda untuk menghindari pembuatan file tunggal yang terlalu besar.
Hindari menjalankan pekerjaan besar selama jam bisnis puncak.
Tetapkan prioritas pekerjaan untuk memastikan pekerjaan penting dieksekusi lebih dulu.
Hindari memasukkan terlalu banyak objek dalam satu pekerjaan guna mencegah waktu eksekusi yang lama. Kami merekomendasikan batas 100 juta objek per pekerjaan.
Hindari membagi pekerjaan besar menjadi terlalu banyak pekerjaan kecil, seperti membagi 1 juta objek menjadi 1.000 pekerjaan. Hal ini meningkatkan waktu yang dihabiskan untuk penjadwalan tugas.
Mengapa pekerjaan memerlukan waktu lebih lama dari yang diharapkan untuk berjalan?
Kemungkinan penyebabnya meliputi:
Objek tersebar tidak merata, sehingga beberapa shard memerlukan waktu lebih lama untuk diproses.
Objek sumber atau tujuan memiliki hot spot, yang dapat memperlambat pemrosesan.
Terlalu banyak pekerjaan berjalan secara bersamaan, sehingga menyebabkan persaingan sumber daya.
Kami merekomendasikan menyesuaikan strategi penjadwalan pekerjaan atau mengurangi jumlah pekerjaan konkuren.