全部产品
Search
文档中心

Object Storage Service:Unggah paket ZIP dan otomatis mengekstraknya

更新时间:Oct 11, 2025

Untuk mengunggah file secara batch, mempertahankan struktur folder, memastikan integritas file, atau mendistribusikan sumber daya dengan cepat, Anda dapat mengonfigurasi aturan ekstraksi. Saat mengunggah file ZIP ke jalur yang ditentukan di Object Storage Service (OSS), aturan tersebut memicu Function Compute untuk mengekstrak file secara otomatis. Konten yang diekstraksi kemudian disimpan di OSS.

Prasyarat

Layanan Function Compute harus diaktifkan. Anda dapat mengaktifkan Function Compute di halaman produk.

Skenario

  • Pengunggahan batch: Mengunggah banyak file kecil satu per satu bisa lambat. Anda dapat menggunakan fitur ini untuk mengemasnya menjadi satu file ZIP untuk pengunggahan yang lebih cepat.

  • Integritas file: Terkadang beberapa file membentuk satu sumber daya. Mengunggahnya secara terpisah berisiko transfer tidak lengkap. Mengemasnya dalam file ZIP memastikan semua bagian tiba bersamaan, meningkatkan tingkat keberhasilan.

  • Struktur folder tertentu: Situs web sering menggunakan struktur folder kompleks untuk sumber daya statis. Membuat folder ini secara manual di OSS bisa lambat. Sebagai gantinya, Anda dapat membuat struktur yang diinginkan secara lokal, mengemasnya menjadi file ZIP, dan mengunggahnya. Fitur ekstraksi mereplikasi struktur tersebut di OSS.

  • Distribusi sumber daya: Untuk mendistribusikan banyak file kepada pengguna atau server, Anda dapat mengemasnya menjadi file ZIP. Unggah dan ekstrak file tersebut di direktori OSS yang ditentukan. Metode ini menghemat waktu transfer dan bandwidth.

Cara kerjanya

Ekstraksi paket ZIP menggunakan Function Compute untuk mengekstrak file ZIP. Proses ekstraksi ditunjukkan dalam Bagan alir berikut.

  1. File ZIP diunggah ke direktori dengan awalan yang ditentukan dalam aturan ekstraksi.

  2. Function Compute dipicu secara otomatis.

    Saat mengonfigurasi aturan, Anda harus memberikan izin pemicu. Ini memungkinkan OSS menggunakan peran `AliyunOSSEventNotificationRole` untuk memanggil Function Compute. Proses otorisasi secara otomatis memberikan peran ini kebijakan akses yang diperlukan.

  3. Function Compute mengekstrak file ZIP dan menyimpan file yang diekstraksi di direktori yang ditentukan di OSS.

    Anda juga harus memberikan otorisasi layanan ke Function Compute. Ini membuat peran baru yang digunakan Function Compute untuk mengakses paket ZIP dari OSS dan menulis file yang diekstraksi ke bucket OSS. Peran ini secara otomatis diberikan izin baca dan tulis yang diperlukan untuk bucket tersebut.

Penagihan

Fitur ekstraksi paket ZIP adalah layanan bernilai tambah yang menghasilkan biaya untuk OSS dan Function Compute. Data ditransfer antara bucket OSS dan Function Compute menggunakan endpoint wilayah internal bucket, tanpa biaya lalu lintas.

  • OSS: Biaya dikenakan untuk jumlah permintaan ke sumber daya bucket dan untuk penyimpanan. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan OSS.

  • Function Compute: Biaya dikenakan untuk penggunaan vCPU, penggunaan memori, dan penggunaan disk, dibebankan berdasarkan waktu eksekusi. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan FC.

    Sebagai contoh, tugas ekstraksi paket ZIP yang berjalan selama 5 menit menggunakan vCPU 2-core, 3 GB memori, dan disk penyimpanan sementara default 10 GB. Biaya dihitung sebagai berikut:

    Penggunaan Sumber Daya

    Unit

    Deskripsi

    Contoh Penagihan

    Penggunaan vCPU

    vCPU-detik

    Penggunaan vCPU aktif = spesifikasi vCPU × Waktu eksekusi (detik)

    Fungsi dikonfigurasi dengan vCPU 2-core dan berjalan selama 300 detik. Penggunaan vCPU untuk run ini adalah 2 × 300 = 600 vCPU-detik.

    Penggunaan Memori

    GB-detik

    Penggunaan memori = Spesifikasi memori × Waktu eksekusi (detik)

    Fungsi dikonfigurasi dengan memori 3 GB dan berjalan selama 300 detik. Penggunaan memori untuk run ini adalah 3 × 300 = 900 GB-detik.

    Penggunaan Disk

    GB-detik

    Penggunaan disk = Spesifikasi disk × Waktu eksekusi (detik)

    Catatan: Penggunaan disk di bawah 512 MB gratis.

    Fungsi dikonfigurasi dengan disk sementara 10 GB dan berjalan selama 300 detik. Penggunaan disk untuk run ini adalah (10 - 512/1024) × 300 = 2.850 GB-detik.

Batasan

  • Kelas penyimpanan: File kelas Penyimpanan Arsip Dingin harus dipulihkan sebelum dapat diekstraksi. Untuk file dalam kelas Penyimpanan Arsip, jika akses real-time ke objek Arsip tidak diaktifkan untuk bucket, file-file tersebut juga harus dipulihkan sebelum ekstraksi.

  • Penamaan file dan folder: Gunakan pengkodean UTF-8 atau GB 2312 untuk nama file dan folder. Pengkodean lain dapat menyebabkan nama yang rusak atau mengganggu proses ekstraksi.

  • Paket ZIP: Ukuran maksimum file tunggal dalam paket ZIP adalah 1 GB. Waktu ekstraksi maksimum default untuk satu paket adalah 2 jam. Jika tugas memakan waktu lebih dari 2 jam, Anda dapat menyesuaikan durasi eksekusi maksimum fungsi. Untuk informasi lebih lanjut, lihat Ekstraksi file besar gagal karena tugas memakan waktu lebih dari 2 jam.

Konfigurasikan aturan ekstraksi paket ZIP

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi di sebelah kiri, klik Buckets. Di halaman Buckets, temukan dan klik bucket yang diinginkan.

  3. Di panel navigasi di sebelah kiri, pilih Data Processing > Decompress ZIP Package.

  4. Klik Decompress ZIP Package. Di panel Decompress ZIP Package, konfigurasikan aturan ekstraksi.

    Parameter

    Parameter

    Diperlukan

    Deskripsi

    Service Authorization

    Ya

    Memberikan izin Function Compute untuk membaca dan menulis ke OSS serta menjalankan fungsi.

    Klik Authorize dan ikuti petunjuk di layar untuk menyelesaikan otorisasi.

    Trigger Authorization

    Ya

    Memberikan OSS izin untuk mengakses Function Compute.

    Klik Authorize dan ikuti petunjuk di layar. Jika otorisasi sudah selesai, parameter ini akan ditampilkan sebagai Trigger Role.

    Prefix

    Tidak

    Awalan file yang memicu Function Compute. Saat Anda mengunggah file ZIP dengan awalan ini atau ke direktori dengan awalan ini, Function Compute dipicu. Jika Anda membiarkannya kosong, semua file ZIP yang diunggah akan memicu fungsi tersebut.

    Penting

    Meninggalkan parameter ini kosong dapat menyebabkan eksekusi loop. Untuk informasi lebih lanjut, lihat Bagaimana cara mencegah eksekusi loop?.

    Destination Directory

    Tidak

    Direktori tempat file yang diekstraksi disimpan. Jika Anda membiarkannya kosong, Function Compute mengekstrak file ZIP ke direktori root bucket saat ini.

    • Jika Anda ingin mempertahankan nama file ZIP sebagai direktori di jalur tujuan, pilih Keep Compressed Filename As A Path Directory.

    • Jika Anda ingin mengekstrak file langsung ke direktori tujuan tanpa mempertahankan nama file ZIP, pilih Decompress Directly To The Destination Directory. Untuk detail konfigurasi, lihat contoh konfigurasi berikut.

    Peringatan

    Untuk menjaga ketersediaan OSS-HDFS dan mencegah kontaminasi data, jangan atur Destination Directory ke .dlsdata/ saat Anda mengonfigurasi aturan ekstraksi paket ZIP untuk bucket yang memiliki OSS-HDFS diaktifkan.

    Contoh konfigurasi

    Skenario

    Konfigurasi

    Struktur file yang diekstraksi

    Semua paket ZIP yang diunggah ke direktori zipfolder diekstraksi ke direktori destfolder. Nama paket ZIP tidak dipertahankan.

    • Atur Prefix ke zipfolder/.

    • Atur Destination Directory ke destfolder.

    • Pilih Decompress Directly To The Destination Directory.

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

    Semua paket ZIP yang diunggah ke direktori zipfolder diekstraksi ke direktori root. Nama paket ZIP dipertahankan.

    Konfigurasikan parameter berikut:

    • Atur Prefix ke zipfolder/.

    • Biarkan Destination Directory kosong.

    • Pilih Keep Compressed Filename As A Path Directory.

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

    Semua paket ZIP yang diunggah ke direktori zipfolder diekstraksi ke direktori destfolder. Nama paket ZIP dipertahankan.

    Konfigurasikan parameter berikut:

    • Atur Prefix ke zipfolder/.

    • Atur Destination Directory ke destfolder.

    • Pilih Keep Compressed Filename As A Path Directory.

    bucket  ├─── zipfolder/   │    ├─── a.zip│    └─── b.zip└─── destfolder/     ├─── a/     │    ├─── a.txt     │    └─── ...     └─── b/          ├─── b.txt          └─── ...
  5. Pilih kotak centang untuk menyetujui aktivasi Function Compute, lalu klik OK.

Modifikasi konfigurasi ekstraksi paket ZIP

Anda dapat memodifikasi konfigurasi ekstraksi paket ZIP sesuai kebutuhan.

Modifikasi awalan file yang memicu Function Compute

  1. Di halaman Decompress ZIP Package di Konsol OSS, klik Edit di sebelah kanan pemicu target.

  2. Di halaman detail fungsi yang muncul, buka tab Trigger Management dan klik Edit di sebelah kanan pemicu target.

  3. Di kotak dialog Edit Trigger, modifikasi File Prefix dan pertahankan pengaturan default untuk parameter lainnya.

  4. Klik OK.

Modifikasi konfigurasi Function Compute

  1. Di halaman detail fungsi di Konsol Function Compute, buka tab Function Configuration dan klik Edit.

  2. Modifikasi pengaturan Function Compute sesuai kebutuhan, seperti memori eksekusi fungsi dan batas waktu eksekusi.

    Untuk informasi lebih lanjut, lihat Kelola fungsi.

Hapus pemicu

Catatan

Setelah pemicu dihapus, pemicu tersebut tidak dapat dipulihkan dan tidak dapat lagi digunakan untuk memicu fungsi. Tugas yang sedang berlangsung akan tetap berjalan.

  1. Di halaman detail fungsi, buka tab Trigger Management dan klik Delete di sebelah kanan pemicu target.

  2. Di kotak dialog yang muncul, klik Delete.

Referensi

Kemas beberapa file menjadi paket ZIP untuk diunduh

FAQ

Function Compute gagal dipicu setelah file diunggah

Ekstraksi melibatkan panggilan dari OSS ke Function Compute. Setelah Anda mengunggah file ZIP, OSS memicu fungsi untuk mengekstraknya. Pemicu ini bisa gagal. Untuk memeriksa status, periksa nilai x-oss-event-status di header respons. Nilai ini dikodekan Base64. Jika nilai yang didekode dari x-oss-event-status adalah {"Result": "Ok"}, pemicu berhasil. Jika nilai yang didekode dari x-oss-event-status bukan {"Result": "Ok"}, pemicu gagal. Jika pemicu gagal, unggah file ZIP lagi. Untuk informasi lebih lanjut, lihat Unggah sederhana.

Catatan

Ukuran maksimum file tunggal dalam paket ZIP adalah 1 GB. Waktu ekstraksi maksimum untuk satu paket adalah 2 jam.

Ekstraksi file besar gagal karena tugas memakan waktu lebih dari 2 jam

Waktu eksekusi maksimum default untuk fungsi adalah 2 jam. Setelah Anda mengonfigurasi aturan ekstraksi paket ZIP, Anda dapat mengubah waktu ini di Konsol Function Compute. Waktu eksekusi maksimum yang didukung adalah 24 jam.

  1. Di halaman Decompress ZIP Package di Konsol OSS, klik Edit di sebelah kanan pemicu target.

  2. Di halaman detail fungsi yang muncul, klik tab Function Configuration.

  3. Di sebelah kanan Environment Context, klik Edit.

  4. Modifikasi Execution Timeout lalu klik OK.

File tunggal dalam paket terkompresi melebihi 1 GB

Jika file tunggal dalam paket ZIP melebihi 1 GB, Anda dapat menggunakan NAS sebagai direktori kerja sementara untuk ekstraksi. Solusi ini mungkin menghasilkan biaya penyimpanan NAS tambahan. Untuk informasi lebih lanjut, lihat unzip-oss-nas.

Apakah paket ZIP bersarang didukung untuk ekstraksi?

Nomor.

Setelah Anda mengonfigurasi aturan ekstraksi, mengunggah paket ZIP ke bucket OSS memicu tugas ekstraksi Function Compute tunggal. Hasilnya kemudian disimpan ke direktori OSS yang ditentukan. Jika file yang diekstraksi mencakup paket ZIP lain, paket bersarang tersebut tidak diekstraksi secara otomatis. Anda harus mengunggah paket ZIP bersarang lagi untuk memicu tugas ekstraksi lainnya.

Bisakah file yang diekstraksi oleh FC disimpan ke bucket lain?

Nomor.

Fitur ekstraksi paket ZIP hanya mendukung mengekstraksi file ke direktori tujuan yang Anda atur saat mengonfigurasi aturan. Untuk mengekstraksi file ke bucket lain, Anda harus melakukan pengembangan kustom dan memodifikasi kode fungsi.

Bisakah saya melihat file di direktori OSS selama proses ekstraksi?

Ya.

Saat Anda menggunakan fitur ekstraksi paket ZIP, Function Compute mengekstrak dan mengunggah file ke OSS secara bersamaan. Anda dapat melihat file yang diekstraksi di direktori tujuan kapan saja.

Bagaimana cara menentukan kapan ekstraksi selesai?

Anda dapat memeriksa log pemanggilan fungsi untuk menentukan apakah ekstraksi sudah selesai.

  1. Di halaman Decompress ZIP Package di Konsol OSS, klik Edit di sebelah kanan pemicu target.

  2. Di halaman detail fungsi yang muncul, klik tab Invocation Logs.

  3. Klik Enable With One Click.

  4. Berikan izin AliyunLogFullAccess ke peran RAM saat ini. Untuk informasi lebih lanjut, lihat Berikan izin ke peran RAM.

  5. Unggah file paket ZIP, lalu lihat log pemanggilan di tab Function Logs.

    Catatan berikut menunjukkan bahwa pemanggilan fungsi telah berakhir, yang berarti ekstraksi selesai.

    image.png

Apakah ekstraksi file .rar dan .tar.gz didukung?

Nomor.

Fitur ekstraksi paket ZIP saat ini hanya mendukung ekstraksi file .zip.

Apakah Function Compute mengirimkan notifikasi kembali ke OSS setelah ekstraksi selesai?

Nomor.

Untuk memeriksa kemajuan ekstraksi, Anda dapat melihat log di tab Invocation Logs halaman detail fungsi. Sebagai alternatif, Anda dapat mengonfigurasi tujuan untuk pemanggilan asinkron fungsi ekstraksi. Untuk informasi lebih lanjut, lihat Konfigurasikan tujuan untuk pemanggilan asinkron.

Apakah OSS mendukung kompresi online?

Nomor.

Untuk mengemas beberapa objek dari OSS dan mengunduhnya ke mesin lokal Anda, Anda dapat menggunakan Function Compute untuk mengemasnya agar dapat diunduh. Untuk informasi lebih lanjut, lihat Kemas beberapa file menjadi paket ZIP untuk diunduh.

Apakah kompresi multipart didukung?

Nomor.

Fitur ekstraksi paket ZIP hanya memproses satu paket terkompresi. Fitur ini tidak mendukung penggabungan konten dari beberapa paket terkompresi setelah ekstraksi. Oleh karena itu, fitur ini tidak mendukung ekstraksi file besar yang telah dibagi menjadi beberapa paket .zip.

Tombol Ekstraksi Paket ZIP dinonaktifkan, dan saya tidak dapat mengonfigurasi aturan ekstraksi

  • Pastikan layanan Function Compute telah diaktifkan. Anda dapat mengaktifkan Function Compute di halaman produk.

  • Ekstraksi paket ZIP hanya didukung di wilayah tertentu. Untuk informasi lebih lanjut, lihat Batasan.