Fitur Batch Operations memungkinkan Anda memproses hingga 10 miliar objek dalam satu pekerjaan, termasuk operasi seperti manajemen tag, modifikasi ACL, dan pemulihan data—tanpa perlu menulis kode.
Lingkup
Fitur Batch Operations tersedia sepenuhnya di wilayah Singapura dan Jerman (Frankfurt). Untuk menggunakan fitur ini di wilayah Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Shenzhen), Tiongkok (Guangzhou), Tiongkok (Qingdao), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Hohhot), Tiongkok (Ulanqab), Tiongkok (Chengdu), Tiongkok (Hong Kong), atau Indonesia (Jakarta), hubungi Technical Support untuk mengajukan akses.
Ikhtisar operasi
Buat peran RAM: Berikan izin kepada layanan OSS untuk membaca file manifest, menjalankan operasi batch, dan menghasilkan laporan.
Siapkan manifest input: Tentukan objek yang akan diproses menggunakan daftar bucket (manifest.json), awalan, 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 sesuai kebutuhan.
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 lampirkan kebijakan kustom ke peran tersebut. Berikut adalah konten kebijakannya. 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 yang akan diproses. Pilih salah satu dari tiga metode berikut sesuai dengan skenario Anda:
File daftar bucket: Cocok untuk operasi batch berskala besar yang dijalankan secara rutin.
Awalan: Memproses semua objek dalam folder tertentu.
File manifest CSV: File CSV yang mencantumkan objek yang akan diproses.
File daftar bucket
Gunakan file manifest yang dihasilkan secara otomatis oleh Daftar Bucket.
<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
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
Pengodean file: UTF-8.
Pemisah kolom: 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 semua kunci dan nilai tag tidak boleh 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 ekspektasi 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 daftar bucket
<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>Ganti tag secara batch menggunakan manifest Inventory</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Awalan
<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>Ganti tag secara batch untuk dokumen</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>Ganti tag secara batch untuk objek tertentu</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 yang 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.
Tambahkan tag secara batch
Operasi penambahan tag 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 yang 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 ekspektasi 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 daftar bucket
<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>Tambahkan tag secara batch menggunakan manifest Inventory</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Awalan
<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>Tambahkan tag secara batch ke dokumen</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>Tambahkan tag secara batch ke objek tertentu</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 yang 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 sekaligus mempertahankan tag yang sudah ada.
Hapus tag secara batch
Operasi penghapusan tag 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 dieksekusi, 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 ekspektasi 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 daftar bucket
<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>Hapus tag secara batch menggunakan manifest Inventory</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Awalan
<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>Hapus tag secara batch untuk dokumen</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>Hapus tag secara batch untuk objek tertentu</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 yang 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 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 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 daftar bucket
<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>Ubah ACL secara batch menggunakan manifest Inventory</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Awalan
<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>Ubah ACL secara batch ke private untuk dokumen</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>Ubah ACL secara batch ke private untuk objek tertentu</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 mengonfirmasi pekerjaan yang 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 durasi akses 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 daftar bucket
<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>Pemulihan batch menggunakan manifest Inventory selama 7 hari</Description>
<Priority>10</Priority>
<RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>Awalan
<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>Pemulihan batch objek arsip selama 7 hari</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>Pemulihan batch objek arsip tertentu selama 7 hari</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 mengkueri detail pekerjaan tersebut. Detail pekerjaan memberikan gambaran lengkap mengenai statusnya, 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>Tugas uji untuk status Suspended</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 yang 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 dalam 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 terpaginasi 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 terpaginasi guna mempermudah 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 dibatalkan.
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 mengubah status pekerjaan menjadi Cancelled, yang akan menghentikan pekerjaan tersebut dan melepaskan sumber dayanya.
Lihat laporan pekerjaan
Setelah pekerjaan selesai, sistem menghasilkan laporan eksekusi terperinci di jalur yang ditentukan. Laporan tersebut mencakup 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 pengaturan 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 memperoleh 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 sudah 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 menghabiskan 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.
Go-live
Praktik terbaik
Strategi perencanaan pekerjaan
Kontrol Skala: Batasi jumlah objek dalam satu pekerjaan menjadi kurang dari 100 juta untuk memastikan eksekusi yang stabil. Bagi 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 untuk menghindari pembuatan file tunggal yang terlalu besar, karena hal ini dapat memperlambat penguraian.
Pemanfaatan Kuota QPS: Manfaatkan sepenuhnya kuota QPS independen agar 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 untuk menghindari persaingan sumber daya.
Hindari 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 bahkan 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 jarang terjadi, 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 akan segera gagal dan berhenti berjalan.
Anomali Konfirmasi Status: Dalam kasus jarang terjadi, 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 berhasil diproses, sementara yang lain gagal. Periksa jumlah tugas yang berhasil dan gagal dalam laporan untuk memastikan hasil sesuai ekspektasi Anda.
Saran Penanganan Kegagalan:
Status Complete hanya menunjukkan bahwa pekerjaan telah selesai, bukan berarti 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 eksekusinya tidak dijamin.
Pembaruan File: Jika objek diperbarui sebelum tindakan dilakukan, pekerjaan akan beroperasi pada file yang diperbarui. Jangan memodifikasi file saat pekerjaan batch sedang berjalan.
Batasan 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 tersebut 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 akan dilakukan beberapa kali, tetapi urutan operasinya 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 aktual.
Status | Deskripsi | Tindakan Pengguna |
New | Pekerjaan telah dibuat dan parameter 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. 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 proteksi multi-versi.
Verifikasi logika operasi di lingkungan staging sebelum mengeksekusinya di lingkungan produksi.
Pemantauan dan peringatan
Konfigurasikan notifikasi event untuk perubahan status pekerjaan agar selalu 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.
Hal ini dapat mengurangi biaya operasi hingga lebih dari 90% dibandingkan dengan memanggil API untuk setiap objek secara individual.
Saran optimasi
Manfaatkan sepenuhnya batas enam pekerjaan konkuren untuk mencegah sumber daya menganggur.
Hapus laporan pekerjaan historis secara berkala untuk mengurangi biaya penyimpanan.
Segera bersihkan pekerjaan uji 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 pemberian tag dikenai biaya permintaan PUT.
Contoh penagihan:
Pemberian tag 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 guna menghindari pemrosesan objek yang tidak perlu. Jadwalkan operasi batch yang tidak mendesak di luar jam sibuk bisnis.
FAQ
Mengapa pekerjaan saya terjebak dalam status Preparing dalam waktu lama?
Kemungkinan penyebabnya meliputi:
File manifest terlalu besar sehingga memerlukan waktu lama untuk diurai.
Pemindaian awalan mencakup banyak objek.
Beban sistem tinggi dan antrian pemrosesan sedang 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 berdasarkan daftar objek yang gagal.
Verifikasi bahwa konfigurasi izin sudah 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 satu file yang terlalu besar.
Hindari menjalankan pekerjaan besar selama jam sibuk bisnis.
Tetapkan prioritas pekerjaan agar pekerjaan penting dieksekusi terlebih dahulu.
Hindari memasukkan terlalu banyak objek dalam satu pekerjaan guna mencegah waktu eksekusi yang panjang. Kami menyarankan batas 100 juta objek per pekerjaan.
Hindari membagi pekerjaan besar menjadi terlalu banyak pekerjaan kecil, seperti membagi 1 juta objek menjadi 1.000 pekerjaan, karena 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, menyebabkan persaingan sumber daya.
Kami menyarankan menyesuaikan strategi penjadwalan pekerjaan atau mengurangi jumlah pekerjaan konkuren.