All Products
Search
Document Center

Intelligent Media Management:Dekompresi berkas paket

Last Updated:Nov 10, 2025

Topik ini menjelaskan cara menggunakan Intelligent Media Management (IMM) untuk mengompresi satu atau beberapa objek yang disimpan di Object Storage Service (OSS), mengkueri konten berkas dalam sebuah paket, serta mendekompresi paket tersebut. Kompresi dan dekompresi berguna dalam berbagai skenario, seperti transmisi data, pencadangan, dan pengarsipan. Anda dapat memanfaatkan fitur ini untuk mengelola dan memproses data dalam bucket secara efisien—misalnya, meningkatkan kecepatan transmisi data, mengurangi penggunaan penyimpanan, serta mempermudah pengarsipan dan berbagi data.

Ikhtisar fitur

IMM mendukung kompresi dan dekompresi berkas di cloud, sehingga meningkatkan efisiensi dan menyederhanakan manajemen berkas. Anda dapat menggunakan IMM untuk mengompresi dan mendekompresi objek secara daring di OSS.

Prasyarat

  • Pasangan AccessKey telah dibuat dan diperoleh. Untuk informasi selengkapnya, lihat Buat pasangan AccessKey.

  • OSS telah diaktifkan, bucket telah dibuat, dan objek telah diunggah ke bucket tersebut. Untuk informasi selengkapnya, lihat Unggah objek.

  • IMM telah diaktifkan. Untuk informasi selengkapnya, lihat Aktifkan IMM.

  • Proyek telah dibuat di konsol IMM. Untuk informasi selengkapnya tentang cara membuat proyek menggunakan konsol IMM, lihat Buat proyek.

    Catatan
    • Anda juga dapat memanggil operasi CreateProject untuk membuat proyek. Untuk informasi selengkapnya, lihat CreateProject.

    • Anda dapat memanggil operasi ListProjects untuk mengkueri proyek yang sudah ada di wilayah tertentu. Untuk informasi selengkapnya, lihat ListProjects.

Format yang didukung

  • Fitur kompresi hanya mendukung operasi pengemasan.

  • Fitur kompresi hanya mendukung format ZIP.

  • Fitur dekompresi dan pratinjau paket mendukung format ZIP, RAR, dan 7z.

Catatan

Informasi tugas kompresi, pembacaan paket, dan dekompresi disimpan selama 7 hari sejak tanggal dimulainya tugas dan tidak dapat dikueri setelah periode tersebut berakhir. Anda dapat menggunakan salah satu metode berikut untuk mengkueri informasi tugas:

Kompresi

Panggil operasi CreateFileCompressionTask - Buat tugas kompresi berkas untuk mengompresi beberapa objek dalam bucket OSS.

Informasi kompresi

  • Proyek IMM: test-project

  • Objek yang akan dikompresi:

    • oss://test-bucket/test-object1.jpg

    • oss://test-bucket/test-object2.jpg

    • oss://test-bucket/test-object3.jpg

    • oss://test-bucket/test-object4.jpg

  • Jalur output: oss://test-bucket/test-target-object.zip

Contoh permintaan

{
    "ProjectName": "test-project",
    "CompressedFormat": "zip",
    "Sources": "[{\"URI\":\"oss://test-bucket/test-object1.jpg\"},{\"URI\":\"oss://test-bucket/test-object2.jpg\"},{\"URI\":\"oss://test-bucket/test-object3.jpg\"},{\"URI\":\"oss://test-bucket/test-object4.jpg\"}]",
    "TargetURI": "oss://test-bucket/test-target-object.zip"
}

Contoh tanggapan

{
  "TaskId": "FileCompression-7e3e2b8c-81bd-495f-a338-25b3762a****",
  "RequestId": "C54C5888-9C96-5A35-AF73-ABD6EF15****",
  "EventId": "164-1S6uXTYhUU4qAFCPOTcYdcb****"
}

Kode contoh

Kode contoh berikut menunjukkan cara mengompresi beberapa objek:

# -*- coding: utf-8 -*-
# Berkas ini dibuat otomatis, jangan mengeditnya. Terima kasih.
import os
import sys

from typing import List

from alibabacloud_imm20200930.client import Client as imm20200930Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_imm20200930 import models as imm_20200930_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client(
        access_key_id: str,
        access_key_secret: str,
    ) -> imm20200930Client:
        """
        Gunakan ID AccessKey dan rahasia AccessKey Anda untuk menginisialisasi klien.
        @param access_key_id:
        @param access_key_secret:
        @return: Client
        @throws Exception
        """
        config = open_api_models.Config(
            access_key_id=access_key_id,
            access_key_secret=access_key_secret
        )
        # Tentukan titik akhir IMM.
        config.endpoint = f'imm.cn-beijing.aliyuncs.com'
        return imm20200930Client(config)

    @staticmethod
    def main(
        args: List[str],
    ) -> None:
        # Pasangan AccessKey akun Alibaba Cloud memiliki izin atas semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
        # Untuk alasan keamanan data, kami menyarankan agar Anda tidak menyertakan pasangan AccessKey (ID AccessKey dan Rahasia AccessKey) dalam kode proyek Anda.
        # Dalam contoh ini, pasangan AccessKey dibaca dari variabel lingkungan untuk menerapkan verifikasi identitas akses API.
        imm_access_key_id = os.getenv("AccessKeyId")
        imm_access_key_secret = os.getenv("AccessKeySecret")
        client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
        sources_0 = imm_20200930_models.CreateFileCompressionTaskRequestSources(
            uri='oss://test-bucket/test-object1.jpg'
        )
        sources_1 = imm_20200930_models.CreateFileCompressionTaskRequestSources(
            uri='oss://test-bucket/test-object2.jpg'
        )
        sources_2 = imm_20200930_models.CreateFileCompressionTaskRequestSources(
            uri='oss://test-bucket/test-object3.jpg'
        )
        sources_3 = imm_20200930_models.CreateFileCompressionTaskRequestSources(
            uri='oss://test-bucket/test-object4.jpg'
        )
        create_file_compression_task_request = imm_20200930_models.CreateFileCompressionTaskRequest(
            project_name='test-project',
            sources=[
                sources_0,
                sources_1,
                sources_2,
                sources_3
            ],
            target_uri='oss://test-bucket/test-target-object.zip',
            compressed_format='zip',
        )
        runtime = util_models.RuntimeOptions()
        try:
            # Tulis kode Anda untuk mencetak respons operasi API jika diperlukan.
            client.create_file_compression_task_with_options(create_file_compression_task_request, runtime)
        except Exception as error:
            # Cetak pesan kesalahan jika diperlukan.
            UtilClient.assert_as_string(error.message)

    @staticmethod
    async def main_async(
        args: List[str],
    ) -> None:
        # Pasangan AccessKey akun Alibaba Cloud memiliki izin atas semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
        # Untuk alasan keamanan data, kami menyarankan agar Anda tidak menyertakan pasangan AccessKey (ID AccessKey dan Rahasia AccessKey) dalam kode proyek Anda.
        # Dalam contoh ini, pasangan AccessKey dibaca dari variabel lingkungan untuk menerapkan verifikasi identitas akses API.
        imm_access_key_id = os.getenv("AccessKeyId")
        imm_access_key_secret = os.getenv("AccessKeySecret")
        client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
        sources_0 = imm_20200930_models.CreateFileCompressionTaskRequestSources(
            uri='oss://test-bucket/test-object1.jpg'
        )
        sources_1 = imm_20200930_models.CreateFileCompressionTaskRequestSources(
            uri='oss://test-bucket/test-object2.jpg'
        )
        sources_2 = imm_20200930_models.CreateFileCompressionTaskRequestSources(
            uri='oss://test-bucket/test-object3.jpg'
        )
        sources_3 = imm_20200930_models.CreateFileCompressionTaskRequestSources(
            uri='oss://test-bucket/test-object4.jpg'
        )
        create_file_compression_task_request = imm_20200930_models.CreateFileCompressionTaskRequest(
            project_name='test-project',
            sources=[
                sources_0,
                sources_1,
                sources_2,
                sources_3
            ],
            target_uri='oss://test-bucket/test-target-object.zip',
            compressed_format='zip',
        )
        runtime = util_models.RuntimeOptions()
        try:
            # Tulis kode Anda untuk mencetak respons operasi API jika diperlukan.
            await client.create_file_compression_task_with_options_async(create_file_compression_task_request, runtime)
        except Exception as error:
            # Cetak pesan kesalahan jika diperlukan.
            UtilClient.assert_as_string(error.message)


if __name__ == '__main__':
    Sample.main(sys.argv[1:])

Kueri konten paket

Panggil operasi CreateArchiveFileInspectionTask - Buat tugas penguraian paket untuk mengkueri konten paket di OSS.

Informasi paket

  • Nama proyek: test-project

  • Jalur paket: oss://test-bucket/test-target-object.zip

  • Jalur output: oss://test-bucket/test-target-object.json

Contoh permintaan

{
    "ProjectName": "test-project",
    "SourceURI": "oss://test-bucket/test-target-object.zip",
    "TargetURI": "oss://test-bucket/test-target-object.json"
}

Contoh tanggapan

{
    "TaskId": "ArchiveFileInspection-4a7c308a-5671-4d34-ba41-86a942d0****",
    "RequestId": "20D23855-C9E6-5193-8939-3A8797E1****",
    "EventId": "2AB-1S53L6FTdU6yMxkc1JgpwcV****"
}

Kode contoh

Kode contoh berikut menunjukkan cara mengkueri konten paket:

# -*- coding: utf-8 -*-
# Berkas ini dibuat otomatis, jangan mengeditnya. Terima kasih.
import os
import sys

from typing import List

from alibabacloud_imm20200930.client import Client as imm20200930Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_imm20200930 import models as imm_20200930_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client(
        access_key_id: str,
        access_key_secret: str,
    ) -> imm20200930Client:
        """
        Gunakan ID AccessKey dan rahasia AccessKey Anda untuk menginisialisasi klien.
        @param access_key_id:
        @param access_key_secret:
        @return: Client
        @throws Exception
        """
        config = open_api_models.Config(
            access_key_id=access_key_id,
            access_key_secret=access_key_secret
        )
        # Tentukan titik akhir IMM.
        config.endpoint = f'imm.cn-beijing.aliyuncs.com'
        return imm20200930Client(config)

    @staticmethod
    def main(
        args: List[str],
    ) -> None:
        # Pasangan AccessKey akun Alibaba Cloud memiliki izin atas semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
        # Untuk alasan keamanan data, kami menyarankan agar Anda tidak menyertakan pasangan AccessKey (ID AccessKey dan Rahasia AccessKey) dalam kode proyek Anda.
        # Dalam contoh ini, pasangan AccessKey dibaca dari variabel lingkungan untuk menerapkan verifikasi identitas akses API.
        imm_access_key_id = os.getenv("AccessKeyId")
        imm_access_key_secret = os.getenv("AccessKeySecret")
        client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
        create_archive_file_inspection_task_request = imm_20200930_models.CreateArchiveFileInspectionTaskRequest(
            project_name='test-project',
            source_uri='oss://test-bucket/test-target-object.zip',
            target_uri='oss://test-bucket/test-target-object.json'
        )
        runtime = util_models.RuntimeOptions()
        try:
            # Anda dapat memilih untuk mencetak respons operasi API.
            client.create_archive_file_inspection_task_with_options(create_archive_file_inspection_task_request, runtime)
        except Exception as error:
            # Cetak pesan kesalahan jika diperlukan.
            UtilClient.assert_as_string(error.message)

    @staticmethod
    async def main_async(
        args: List[str],
    ) -> None:
        # Pasangan AccessKey akun Alibaba Cloud memiliki izin atas semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
        # Untuk alasan keamanan data, kami menyarankan agar Anda tidak menyertakan pasangan AccessKey (ID AccessKey dan Rahasia AccessKey) dalam kode proyek Anda.
        # Dalam contoh ini, pasangan AccessKey dibaca dari variabel lingkungan untuk menerapkan verifikasi identitas akses API.
        imm_access_key_id = os.getenv("AccessKeyId")
        imm_access_key_secret = os.getenv("AccessKeySecret")
        client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
        create_archive_file_inspection_task_request = imm_20200930_models.CreateArchiveFileInspectionTaskRequest(
            project_name='test-project',
            source_uri='oss://test-bucket/test-target-object.zip',
            target_uri='oss://test-bucket/test-target-object.json',
        )
        runtime = util_models.RuntimeOptions()
        try:
            # Anda dapat memilih untuk mencetak respons operasi API.
            await client.create_archive_file_inspection_task_with_options_async(create_archive_file_inspection_task_request, runtime)
        except Exception as error:
            # Cetak pesan kesalahan jika diperlukan.
            UtilClient.assert_as_string(error.message)


if __name__ == '__main__':
    Sample.main(sys.argv[1:])

Dekompresi

Panggil operasi CreateFileUncompressionTask - Buat tugas dekompresi untuk mendekompresi paket di OSS.

Informasi dekompresi

  • Nama proyek: test-project

  • Jalur paket: oss://test-bucket/test-target-object.zip

  • Objek yang akan didekompresi: test-object1.jpg

  • Jalur output: oss://test-bucket/test-target-object

Contoh permintaan

{
    "ProjectName": "test-project",
    "SourceURI": "oss://test-bucket/test-target-object.zip",
    "Target": "{\"URI\":\"oss://test-bucket/test-target-object\"}",
    "SelectedFiles": "[\"test-object1.jpg\"]"
}

Contoh tanggapan

{
  "TaskId": "FileUncompression-f31061ab-eaeb-469d-ac8f-9af10e5d****",
  "RequestId": "20115435-9F59-58C0-8D15-E6ECC096****",
  "EventId": "3B6-1S6ywKAB2ogXJnrzmk6tFUF****"
}

Kode contoh

Kode contoh berikut menunjukkan cara mendekompresi paket:

# -*- coding: utf-8 -*-
# Berkas ini dibuat otomatis, jangan mengeditnya. Terima kasih.
import os
import sys

from typing import List

from alibabacloud_imm20200930.client import Client as imm20200930Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_imm20200930 import models as imm_20200930_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client(
            access_key_id: str,
            access_key_secret: str,
    ) -> imm20200930Client:
        """
        Gunakan ID AccessKey dan rahasia AcecssKey Anda untuk menginisialisasi klien.
        @param access_key_id:
        @param access_key_secret:
        @return: Client
        @throws Exception
        """
        config = open_api_models.Config(
            access_key_id=access_key_id,
            access_key_secret=access_key_secret
        )
        # Titik akhir.
        config.endpoint = f'imm.cn-beijing.aliyuncs.com'
        return imm20200930Client(config)

    @staticmethod
    def main(
            args: List[str],
    ) -> None:
        # Pasangan AccessKey akun Alibaba Cloud memiliki izin atas semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
        # Untuk alasan keamanan data, kami menyarankan agar Anda tidak menyertakan pasangan AccessKey (ID AccessKey dan Rahasia AccessKey) dalam kode proyek Anda.
        # Dalam contoh ini, pasangan AccessKey dibaca dari variabel lingkungan untuk menerapkan verifikasi identitas akses API.
        imm_access_key_id = os.getenv("AccessKeyId")
        imm_access_key_secret = os.getenv("AccessKeySecret")
        client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
        target = imm_20200930_models.CreateFileUncompressionTaskRequestTarget(
            uri='oss://test-bucket/test'
        )
        create_file_uncompression_task_request = imm_20200930_models.CreateFileUncompressionTaskRequest(
            project_name='test-project',
            target=target,
            source_uri='oss://test-bucket/test-target-object.zip'
        )
        runtime = util_models.RuntimeOptions()
        try:
            # Tulis kode untuk mencetak respons operasi API berdasarkan kebutuhan bisnis Anda.
            response = client.create_file_uncompression_task_with_options(create_file_uncompression_task_request, runtime)
        except Exception as error:
            # Anda dapat memilih untuk mencetak kesalahan jika diperlukan.
            UtilClient.assert_as_string(error.message)

    @staticmethod
    async def main_async(
            args: List[str],
    ) -> None:
        # Pasangan AccessKey akun Alibaba Cloud memiliki izin atas semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
        # Untuk alasan keamanan data, kami menyarankan agar Anda tidak menyertakan pasangan AccessKey (ID AccessKey dan Rahasia AccessKey) dalam kode proyek Anda.
        # Dalam contoh ini, pasangan AccessKey dibaca dari variabel lingkungan untuk menerapkan verifikasi identitas akses API.
        imm_access_key_id = os.getenv("AccessKeyId")
        imm_access_key_secret = os.getenv("AccessKeySecret")
        client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
        target = imm_20200930_models.CreateFileUncompressionTaskRequestTarget(
            uri='oss://test-bucket/test'
        )
        create_file_uncompression_task_request = imm_20200930_models.CreateFileUncompressionTaskRequest(
            project_name='test-project',
            target=target,
            source_uri='oss://test-bucket/test-target-object.zip'
        )
        runtime = util_models.RuntimeOptions()
        try:
            # Tulis kode untuk mencetak respons operasi API berdasarkan kebutuhan bisnis Anda.
            await client.create_file_uncompression_task_with_options_async(create_file_uncompression_task_request, runtime)
        except Exception as error:
            # Anda dapat memilih untuk mencetak kesalahan jika diperlukan.
            UtilClient.assert_as_string(error.message)


if __name__ == '__main__':
    Sample.main(sys.argv[1:])

Penagihan

Saat mendekompresi berkas paket, item penagihan berikut dikenakan di sisi OSS dan IMM:

  • Sisi OSS: Untuk informasi harga selengkapnya, lihat Harga OSS.

    API

    Item penagihan

    Deskripsi

    GetObject

    Permintaan GET

    Anda dikenai biaya permintaan berdasarkan jumlah permintaan yang berhasil.

    lalu lintas keluar melalui Internet

    Jika Anda memanggil operasi GetObject menggunakan titik akhir publik, seperti oss-cn-hangzhou.aliyuncs.com, atau titik akhir percepatan, seperti oss-accelerate.aliyuncs.com, Anda akan dikenai biaya lalu lintas keluar melalui Internet berdasarkan ukuran data.

    Pengambilan data objek IA

    Jika objek IA diambil, Anda akan dikenai biaya pengambilan data IA berdasarkan ukuran objek IA yang diambil.

    Kapasitas Pengambilan Data dari Baca Langsung Arsip

    Jika objek Arsip dalam bucket yang diaktifkan akses real-time diambil, Anda akan dikenai biaya pengambilan data Arsip berdasarkan ukuran objek Arsip yang diambil.

    akselerasi transfer

    Jika Anda mengaktifkan akselerasi transfer dan menggunakan titik akhir percepatan untuk mengakses bucket Anda, Anda akan dikenai biaya akselerasi transfer berdasarkan ukuran data.

  • Sisi IMM: Untuk informasi harga selengkapnya, lihat Item penagihan IMM.

    Penting

    Mulai pukul 11.00 pada 28 Juli 2025 (UTC+8), layanan kompresi dan dekompresi berkas IMM akan beralih dari model gratis menjadi model berbayar. Untuk informasi selengkapnya, lihat Pengumuman penyesuaian penagihan IMM.

    API

    Item penagihan

    Deskripsi

    CreateFileCompressionTask

    FileProcess

    Anda dikenai biaya kompresi berdasarkan ukuran berkas sumber yang dikompresi.

    CreateFileUncompressionTask

    Anda dikenai biaya dekompresi berdasarkan ukuran berkas yang didekompresi.

    CreateArchiveFileInspectionTask

    FilePreview

    Anda dikenai biaya pratinjau berdasarkan ukuran paket yang dipratinjau.

FAQ

  • Bagaimana saya mengetahui apakah operasi CreateFileCompressionTask telah selesai membuat paket?

  • Apakah saya dapat menggunakan operasi CreateFileCompressionTask untuk mengompresi objek dari bucket OSS yang berbeda ke dalam satu paket?

    • Ya, Anda dapat mengompresi objek dari bucket OSS yang berbeda ke dalam satu paket jika memiliki izin yang diperlukan.