All Products
Search
Document Center

Object Storage Service:Dekompresi paket ZIP

Last Updated:Sep 09, 2026

Konfigurasikan aturan dekompresi untuk mengekstrak secara otomatis paket ZIP yang diunggah ke direktori OSS tertentu. Function Compute mendekompresi paket tersebut dan menyimpan objek hasil ekstraksi ke direktori tujuan.

Prasyarat

Function Compute telah diaktifkan. Untuk mengaktifkannya, buka halaman Function Compute.

Skenario

  • Unggah batch: Kompres banyak objek kecil menjadi satu paket ZIP untuk mengurangi waktu unggah.

  • Kelengkapan sumber daya: Gabungkan file terkait ke dalam satu paket ZIP untuk memastikan semua komponen diunggah bersamaan.

  • Pelestarian struktur direktori: Kemas struktur direktori lokal ke dalam file ZIP lalu unggah ke OSS. Aturan dekompresi akan mereplikasi struktur folder asli di dalam bucket.

  • Pengiriman konten: Kompres objek ke dalam paket ZIP lalu unggah ke OSS. Paket tersebut didekompresi ke direktori tertentu, sehingga mengurangi waktu transmisi dan penggunaan bandwidth.

Cara kerja

OSS menggunakan Function Compute untuk mendekompresi paket ZIP yang diunggah. Gambar berikut menunjukkan prosesnya.

  1. Paket ZIP diunggah ke direktori yang ditentukan oleh parameter Prefix dalam aturan dekompresi.

  2. Pemicu Function Compute dipanggil.

    Saat Anda mengonfigurasi aturan dekompresi, otorisasi pemicu agar OSS dapat menggunakan peran AliyunOSSEventNotificationRole untuk mengakses Function Compute.

  3. Function Compute mendekompresi paket ZIP dan menyimpan objek hasil ekstraksi ke direktori OSS yang ditentukan.

    Saat Anda mengonfigurasi aturan dekompresi, otorisasi Function Compute untuk membaca dari dan menulis ke bucket OSS.

Penagihan

Dekompresi paket ZIP dikenai biaya baik di sisi OSS maupun Function Compute. Transfer data antara OSS dan Function Compute melalui internal endpoint tidak dikenai biaya.

  • Di sisi OSS, Anda dikenai biaya untuk pemanggilan operasi API dan penyimpanan objek. Untuk informasi selengkapnya, lihat Ikhtisar penagihan.

  • Di sisi Function Compute, Anda dikenai biaya berdasarkan penggunaan vCPU, penggunaan memori, dan penggunaan disk sesuai durasi eksekusi. Untuk informasi selengkapnya, lihat Ikhtisar penagihan.

    Sebagai contoh, jika tugas dekompresi paket ZIP menggunakan instans Function Compute dengan memori 3 GB dan vCPU 2-core serta membutuhkan waktu 5 menit untuk menyelesaikan dekompresi, dan ukuran disk default yang dialokasikan untuk file penyimpanan sementara adalah 10 GB, maka biaya yang dikenakan oleh Function Compute dihitung berdasarkan rumus berikut:

Item penggunaan sumber daya

Unit

Rumus

Contoh penagihan

vCPU usage

vCPU-seconds

Active vCPU usage = kapasitas vCPU × durasi eksekusi (detik)

Jika fungsi dikonfigurasi dengan 2 vCPU dan berjalan selama 300 detik, penggunaan vCPU untuk satu kali eksekusi dihitung dengan rumus berikut: 2 × 300 = 600 vCPU-seconds.

Memory usage

GB-seconds

Memory usage = kapasitas memori (GB) × durasi eksekusi (detik)

Jika fungsi dikonfigurasi dengan ukuran memori 3 GB dan berjalan selama 300 detik, penggunaan memori untuk satu kali eksekusi dihitung dengan rumus berikut: 3 × 300 = 900 GB-seconds

Disk usage

GB-seconds

Disk usage = kapasitas disk (GB) × durasi eksekusi (detik)

Catatan: Penggunaan disk hingga 512 MB tidak dikenai biaya.

Jika fungsi dikonfigurasi dengan ukuran disk sementara 10 GB dan berjalan selama 300 detik, penggunaan disk untuk satu kali eksekusi dihitung dengan rumus berikut: (10 – 512/1024) × 300 = 2850 GB-seconds.

Batasan

  • Kelas penyimpanan: Objek Cold Archive harus dipulihkan terlebih dahulu sebelum dapat didekompresi. Objek Archive di bucket yang tidak mengaktifkan fitur real-time access of Archive objects juga harus dipulihkan terlebih dahulu sebelum dapat didekompresi.

  • Penamaan objek dan direktori: Encode nama objek dan direktori dalam UTF-8 atau GB 2312. Encoding lain dapat menyebabkan kegagalan dekompresi atau nama yang rusak.

  • Ukuran objek dan durasi dekompresi: Setiap objek dalam paket ZIP tidak boleh melebihi 1 GB. Anda dapat menambah durasi dekompresi jika diperlukan. Untuk informasi selengkapnya, Apa yang harus saya lakukan jika dekompresi paket ZIP gagal karena timeout?

Konfigurasi aturan dekompresi paket ZIP

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi kiri, klik Buckets. Pada halaman yang muncul, klik nama bucket target.

  3. Di pohon navigasi kiri, pilih Data Processing > Decompress ZIP Package.

  4. Klik Decompress ZIP Package. Di panel Decompress ZIP Package, konfigurasikan parameter yang dijelaskan dalam tabel berikut.

    Parameter

    Parameter

    Wajib

    Deskripsi

    Service Authorization

    Ya

    Otorisasi Function Compute untuk membaca dari dan menulis ke OSS serta mengeksekusi fungsi.

    Klik Authorize. Selesaikan otorisasi pada halaman yang muncul.

    Authorize Trigger

    Ya

    Otorisasi OSS untuk mengakses Function Compute.

    Klik Authorize. Selesaikan otorisasi pada halaman yang muncul. Jika OSS telah diotorisasi untuk mengakses Function Compute, parameter Trigger Role akan ditampilkan menggantikan parameter Authorize Trigger.

    Prefix

    Tidak

    Awalan yang harus dicocokkan oleh nama paket ZIP agar memicu dekompresi. Jika Anda mengunggah paket ZIP yang namanya mengandung awalan ini atau mengunggahnya ke direktori yang ditentukan oleh awalan tersebut, Function Compute akan mendekompresinya. Jika tidak ditentukan, semua paket ZIP yang diunggah ke bucket akan didekompresi.

    Penting

    Jika parameter ini tidak ditentukan, tugas dekompresi mungkin dieksekusi berulang kali. Oleh karena itu, kami menyarankan agar Anda menentukan awalan untuk setiap aturan dekompresi. Untuk informasi selengkapnya, lihat Bagaimana cara menghindari loop pemicu?

    Destination Directory

    Tidak

    Direktori tempat objek hasil ekstraksi disimpan. Jika tidak ditentukan, objek didekompresi ke direktori root bucket.

    • Untuk menyimpan objek hasil ekstraksi di subdirektori yang dinamai sesuai paket ZIP, pilih Add the compressed object name to the destination directory.

    • Untuk menyimpan objek hasil ekstraksi langsung di direktori tujuan tanpa subdirektori, pilih Decompress to the destination directory. Tabel berikut menunjukkan contoh konfigurasi.

    Peringatan

    Untuk mencegah gangguan layanan, kontaminasi data, atau kehilangan data saat mengonfigurasi aturan dekompresi paket ZIP pada bucket yang mengaktifkan OSS-HDFS, jangan mengatur Destination Directory ke.dlsdata/.

    Contoh konfigurasi dekompresi

    Skenario

    Metode konfigurasi

    Struktur penyimpanan setelah dekompresi

    Dekompresi semua paket ZIP yang diunggah ke direktori zipfolder ke direktori destfolder, tanpa membuat subdirektori yang namanya sama dengan paket ZIP.

    • Atur Prefix ke zipfolder/.

    • Atur Destination Directory ke destfolder.

    • Pilih Decompress to the destination directory.

    bucket  ├─── zipfolder/   │    ├─── a.zip│    └─── b.zip└─── destfolder/     ├─── a.txt     ├─── b.txt     └─── ... 

    Dekompresi semua paket ZIP yang diunggah ke direktori zipfolder ke subdirektori yang namanya sama dengan paket di direktori root bucket.

    Konfigurasikan parameter berikut:

    • Atur Prefix ke zipfolder/.

    • Biarkan Destination Directory kosong.

    • Pilih Add the compressed object name to the destination directory.

    bucket  ├─── zipfolder/   │    ├─── a.zip│    └─── b.zip├─── a/│    ├─── a.txt│    └─── ...└─── b/     ├─── b.txt     └─── ...

    Dekompresi semua paket ZIP yang diunggah ke direktori zipfolder ke subdirektori yang namanya sama dengan paket di direktori destfolder.

    Konfigurasikan parameter berikut:

    • Atur Prefix ke zipfolder/.

    • Atur Destination Directory ke destfolder.

    • Pilih Add the compressed object name to the destination directory.

    bucket  ├─── zipfolder/   │    ├─── a.zip│    └─── b.zip└─── destfolder/     ├─── a/     │    ├─── a.txt     │    └─── ...     └─── b/          ├─── b.txt          └─── ...
  5. Pilih I have read the terms of service and agreed to activate Function Compute and process compressed files by using Function Compute. Only file or folder names encoded in UTF-8 or GB 2312 can be processed. lalu klik OK.

Ubah aturan dekompresi paket ZIP

Ubah aturan dekompresi untuk memperbarui awalan pemicu atau konfigurasi fungsi.

Ubah parameter Prefix

  1. Di halaman Decompress ZIP Package di Konsol OSS, temukan pemicu yang ingin diubah lalu klik Edit di kolom Actions.

  2. Di tab Triggers halaman detail fungsi, temukan pemicu lalu klik Modify di kolom Actions.

  3. Di panel Modify Trigger, ubah parameter Object Prefix dan pertahankan pengaturan default untuk parameter lainnya.

  4. Klik OK.

Ubah konfigurasi fungsi

  1. Di tab Configurations halaman detail fungsi, klik Modify di bagian Basic Settings atau bagian Environment Information.

  2. Ubah konfigurasi fungsi, seperti Memory dan Execution Timeout Period.

    Untuk informasi selengkapnya, lihat Manage functions.

Hapus pemicu

Catatan

Pemicu yang dihapus tidak dapat dipulihkan. Menghapus pemicu tidak mengganggu tugas dekompresi yang sedang berjalan.

  1. Di tab Triggers halaman detail fungsi, temukan pemicu yang ingin dihapus lalu klik Delete di kolom Actions.

  2. Pada pesan yang muncul, klik Delete.

Peroleh hasil dekompresi

Setelah fungsi dekompresi selesai dijalankan, OSS tidak mengembalikan hasil dekompresi secara proaktif. Anda dapat menggunakan metode berikut untuk memperoleh hasil dekompresi dan meneruskannya ke layanan backend Anda.

Metode 1: Kueri status dekompresi dalam mode task

Setelah Anda mengaktifkan mode task, setiap eksekusi fungsi dekompresi menghasilkan catatan tugas asinkron. Anda dapat melihat status tugas di daftar tugas atau mengkuerinya dengan memanggil operasi API.

  1. Di Konsol Function Compute, buka halaman detail fungsi dekompresi lalu klik tab Task.

  2. Di area konfigurasi mode task, klik Edit, lalu aktifkan Task Mode. Secara default, Task Mode dinonaktifkan. Di area yang sama, Anda juga dapat mengonfigurasi Maximum Retry Attempts (default: 3), Message Time to Live (default: 1 hari), dan Invocation Destination (default: tidak dikonfigurasi).

  3. Setelah Task Mode diaktifkan, setiap eksekusi fungsi dekompresi menghasilkan catatan tugas asinkron. Daftar tugas menampilkan ID tugas, status tugas, waktu mulai dan selesai, durasi eksekusi, jumlah percobaan ulang, request ID, dan ID instans.

  4. Anda juga dapat memanggil operasi GetAsyncTask Function Compute untuk mengkueri status tugas. Status tugas yang dikembalikan bernilai Succeeded menunjukkan bahwa tugas dekompresi berhasil diselesaikan.

Metode 2: Konfigurasi tujuan pemanggilan asinkron untuk notifikasi otomatis

Di area konfigurasi mode task, aktifkan Invoke Another Service on Success atau Invoke Another Service on Failure untuk memberi notifikasi otomatis ke layanan tujuan tertentu setelah tugas dekompresi selesai. Jenis layanan tujuan berikut didukung:

  • Function Compute (FC)

  • ApsaraMQ for RocketMQ

  • Simple Message Queue (formerly MNS)

  • EventBridge

Metode 3: Kirim notifikasi ke layanan backend Anda melalui callback HTTP kustom

Tujuan pemanggilan asinkron bawaan tidak mendukung callback HTTP kustom. Jika Anda perlu memberi notifikasi ke layanan backend yang dikelola sendiri—misalnya, layanan yang dideploy di kluster ACK—mengenai hasil dekompresi, gunakan pendekatan berikut:

  1. Buat fungsi Function Compute yang mengirim permintaan notifikasi HTTP ke endpoint layanan backend Anda.

  2. Konfigurasikan fungsi ini sebagai tujuan pemanggilan asinkron fungsi dekompresi dengan mengikuti langkah-langkah pada Metode 2.

  3. Setelah tugas dekompresi selesai, Function Compute memanggil fungsi ini, yang kemudian mengirim notifikasi HTTP ke layanan backend Anda.

Referensi

Kemas dan unduh objek sebagai file ZIP

FAQ

Apa yang harus saya lakukan jika unggah paket ZIP gagal memicu tugas dekompresi Function Compute?

Periksa header respons x-oss-event-status yang diencode Base64. Jika nilai hasil decode x-oss-event-status adalah {"Result": "Ok"}, dekompresi telah dipicu. Jika nilai hasil decode x-oss-event-status bukan {"Result": "Ok"}, unggah ulang paket ZIP. Untuk informasi selengkapnya, lihat Simple upload.

Catatan

Setiap objek dalam paket ZIP tidak boleh melebihi 1 GB. Durasi maksimum dekompresi default adalah 2 jam.

Apa yang harus saya lakukan jika dekompresi paket ZIP gagal karena timeout?

Durasi maksimum dekompresi default adalah 2 jam, yang dapat ditingkatkan hingga 24 jam. Untuk mengubah durasi:

  1. Di halaman Decompress ZIP Package di Konsol OSS, temukan pemicu yang ingin diubah, lalu klik Edit di kolom Actions.

  2. Di halaman detail fungsi, klik tab Configurations.

  3. Klik Modify di samping Environment Information.

  4. Ubah nilai bidang Execution Timeout Period, lalu klik OK.

Bagaimana cara mendekompresi paket yang berisi objek berukuran lebih dari 1 GB?

Jika suatu objek dalam paket ZIP melebihi 1 GB, simpan paket tersebut di File Storage NAS dan dekompresi di sana. Hal ini dikenai biaya penyimpanan NAS. Lihat repositori GitHub unzip-oss-nas.

Apakah Function Compute mendekompresi paket ZIP yang berada di dalam paket ZIP lain?

Tidak. Function Compute hanya mendekompresi paket ZIP satu kali.

Jika paket ZIP berisi paket ZIP bersarang, paket dalamnya tidak didekompresi. Unggah secara terpisah untuk memicu tugas dekompresi lainnya.

Apakah dekompresi paket ZIP memungkinkan data didekompresi ke bucket berbeda?

Tidak. Dekompresi hanya terbatas pada direktori dalam bucket yang sama. Untuk mendekompresi ke bucket berbeda, implementasikan fungsi kustom di Function Compute.

Apakah objek hasil ekstraksi selama dekompresi paket ZIP muncul di direktori tujuan secara sinkron?

Ya. Function Compute mengunggah objek hasil ekstraksi ke direktori tujuan sambil terus mendekompresi data yang tersisa.

Function Compute mengunggah objek hasil dekompresi dari paket ZIP ke OSS sambil mendekompresi data yang tersisa dalam paket tersebut.

Bagaimana cara memeriksa apakah tugas dekompresi telah selesai?

Lihat log pemanggilan fungsi untuk memeriksa status dekompresi.

  1. Di halaman Decompress ZIP Package di Konsol OSS, temukan pemicu, lalu klik Edit di kolom Actions.

  2. Di halaman detail fungsi, klik tab Logs.

  3. Klik Enable.

  4. Lampirkan kebijakan AliyunLogFullAccess ke peran RAM. Untuk informasi selengkapnya, lihat Manage permissions for a RAM role.

  5. Jika tugas dekompresi dipicu saat unggah paket ZIP, lihat informasi log di tab Logs untuk memeriksa apakah dekompresi telah selesai.

    Jika log berisi "FC Invoke End", tugas dekompresi telah selesai.

    image.png

Apakah dekompresi paket ZIP mendukung file .rar dan .tar.gz?

Tidak. Hanya file .zip yang didukung.

Dekompresi paket ZIP hanya mendukung file ZIP.

Apakah notifikasi dikirim setelah dekompresi selesai?

Tidak. OSS tidak mengembalikan hasil dekompresi secara proaktif. Untuk informasi selengkapnya tentang cara memperoleh hasilnya, lihat Peroleh hasil dekompresi.

Apakah OSS mendukung kompresi online?

Tidak, OSS tidak mendukung kompresi online.

Gunakan Function Compute untuk mengemas dan mengunduh objek. Gunakan Function Compute untuk mengemas dan mengunduh objek OSS.

Dapatkah saya menggunakan dekompresi paket ZIP untuk mendekompresi paket ZIP multipart?

Tidak. Dekompresi paket ZIP tidak dapat menggabungkan atau mendekompresi arsip ZIP multipart (split).

Dekompresi paket ZIP tidak menggabungkan konten dari paket ZIP multipart. Oleh karena itu, fitur ini tidak dapat mendekompresi paket ZIP multipart.

Mengapa tombol Decompress ZIP Package berwarna abu-abu?

  • Function Compute belum diaktifkan. Aktifkan di halaman Function Compute.

  • Dekompresi paket ZIP tidak didukung di wilayah bucket Anda. Untuk informasi selengkapnya, lihat Batasan.