Tous les produits
Search
Centre de documentation

Intelligent Media Management:Décompression de fichiers d'archive

Dernière mise à jour :Sep 22, 2026

Cette rubrique explique comment utiliser Intelligent Media Management (IMM) pour compresser un ou plusieurs objets stockés dans Object Storage Service (OSS), consulter le contenu d'une archive et la décompresser. La compression et la décompression sont utiles dans de nombreux scénarios, tels que la transmission de données, la sauvegarde et l'archivage. Utilisez ces fonctionnalités pour gérer et traiter efficacement les données d'un compartiment. Par exemple, vous pouvez améliorer la vitesse de transmission des données, réduire l'utilisation du stockage et faciliter l'archivage et le partage des données.

Présentation de la fonctionnalité

IMM prend en charge la compression et la décompression de fichiers dans le cloud, ce qui améliore l'efficacité et simplifie la gestion des fichiers. Utilisez IMM pour compresser et décompresser des objets en ligne dans OSS.

Prérequis

  • Créez une paire de clés AccessKey. Pour plus d'informations, consultez Créer une paire de clés AccessKey.

  • Activez OSS, créez un compartiment et téléchargez-y des fichiers. Pour plus d'informations, consultez Télécharger des fichiers.

  • Activez IMM. Pour plus d'informations, consultez Activer IMM.

  • Créez un projet dans la console IMM. Pour plus d'informations, consultez Créer un projet.

    Remarque
    • Vous pouvez également appeler l'opération CreateProject pour créer un projet. Pour plus d'informations, consultez Créer un projet.

    • Appelez l'opération ListProjects pour répertorier tous les projets d'une région spécifiée.

Formats pris en charge

  • La fonctionnalité de compression prend uniquement en charge les opérations d'empaquetage.

  • La fonctionnalité de compression prend uniquement en charge le format ZIP.

  • Les fonctionnalités de décompression et d'aperçu d'archive prennent en charge les formats ZIP, RAR et 7z.

Notes

Les informations relatives aux tâches de compression, de lecture d'archive et de décompression sont conservées pendant 7 jours à compter de la date de début de la tâche et ne peuvent pas être consultées après l'expiration de cette période. Utilisez l'une des méthodes suivantes pour consulter les informations sur les tâches :

Compression

Appelez l'opération CreateFileCompressionTask - Créer une tâche de compression de fichier pour compresser plusieurs objets dans un compartiment OSS.

Informations sur la compression

  • Projet IMM : test-project

  • Objets à compresser :

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

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

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

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

  • Chemin de sortie : oss://test-bucket/test-target-object.zip

Exemple de requête

{
    "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"
}

Exemple de réponse

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

Exemple de code

L'exemple de code suivant montre comment compresser plusieurs objets :

# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
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:
        """
        Use your AccessKey ID and AccessKey secret to initialize the client.
        @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
        )
        # Specify the IMM endpoint.
        config.endpoint = f'imm.cn-beijing.aliyuncs.com'
        return imm20200930Client(config)

    @staticmethod
    def main(
        args: List[str],
    ) -> None:
        # The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations is a high-risk operation. We recommend that you use a RAM user to call API operations or perform routine O&M.
        # We recommend that you do not include your AccessKey pair (AccessKey ID and AccessKey secret) in your project code for data security reasons.
        # In this example, the AccessKey pair is read from the environment variables to implement identity verification for API access.
        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:
            # Write your code to print the response of the API operation if necessary.
            client.create_file_compression_task_with_options(create_file_compression_task_request, runtime)
        except Exception as error:
            # Print the error message if necessary.
            UtilClient.assert_as_string(error.message)

    @staticmethod
    async def main_async(
        args: List[str],
    ) -> None:
        # The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations is a high-risk operation. We recommend that you use a RAM user to call API operations or perform routine O&M.
        # We recommend that you do not include your AccessKey pair (AccessKey ID and AccessKey secret) in your project code for data security reasons.
        # In this example, the AccessKey pair is read from the environment variables to implement identity verification for API access.
        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:
            # Write your code to print the response of the API operation if necessary.
            await client.create_file_compression_task_with_options_async(create_file_compression_task_request, runtime)
        except Exception as error:
            # Print the error message if necessary.
            UtilClient.assert_as_string(error.message)

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

Consulter le contenu d'une archive

Appelez l'opération CreateArchiveFileInspectionTask - Créer une tâche d'analyse d'archive pour consulter le contenu d'une archive dans OSS.

Informations sur l'archive

  • Nom du projet : test-project

  • Chemin de l'archive : oss://test-bucket/test-target-object.zip

  • Chemin de sortie : oss://test-bucket/test-target-object.json

Exemple de requête

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

Exemple de réponse

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

Exemple de code

L'exemple de code suivant montre comment consulter le contenu d'une archive :

# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
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:
        """
        Use your AccessKey ID and AccessKey secret to initialize the client.
        @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
        )
        # Specify the IMM endpoint.
        config.endpoint = f'imm.cn-beijing.aliyuncs.com'
        return imm20200930Client(config)

    @staticmethod
    def main(
        args: List[str],
    ) -> None:
        # The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations is a high-risk operation. We recommend that you use a RAM user to call API operations or perform routine O&M.
        # We recommend that you do not include your AccessKey pair (AccessKey ID and AccessKey secret) in your project code for data security reasons.
        # In this example, the AccessKey pair is read from the environment variables to implement identity verification for API access.
        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:
            # You can choose to print the response of the API operation.
            client.create_archive_file_inspection_task_with_options(create_archive_file_inspection_task_request, runtime)
        except Exception as error:
            # Print the error message if necessary.
            UtilClient.assert_as_string(error.message)

    @staticmethod
    async def main_async(
        args: List[str],
    ) -> None:
        # The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations is a high-risk operation. We recommend that you use a RAM user to call API operations or perform routine O&M.
        # We recommend that you do not include your AccessKey pair (AccessKey ID and AccessKey secret) in your project code for data security reasons.
        # In this example, the AccessKey pair is read from the environment variables to implement identity verification for API access.
        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:
            # You can choose to print the response of the API operation.
            await client.create_archive_file_inspection_task_with_options_async(create_archive_file_inspection_task_request, runtime)
        except Exception as error:
            # Print the error message if necessary.
            UtilClient.assert_as_string(error.message)

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

Décompression

Appelez l'opération CreateFileUncompressionTask - Créer une tâche de décompression pour décompresser une archive dans OSS.

Informations sur la décompression

  • Nom du projet : test-project

  • Chemin de l'archive : oss://test-bucket/test-target-object.zip

  • Objet à décompresser : test-object1.jpg

  • Chemin de sortie : oss://test-bucket/test-target-object

Exemple de requête

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

Exemple de réponse

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

Exemple de code

L'exemple de code suivant montre comment décompresser une archive :

# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
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:
        """
        Use your AccessKey ID and AcecssKey secret to initialize the client.
        @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
        )
        # The endpoint.
        config.endpoint = f'imm.cn-beijing.aliyuncs.com'
        return imm20200930Client(config)

    @staticmethod
    def main(
            args: List[str],
    ) -> None:
        # The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations is a high-risk operation. We recommend that you use a RAM user to call API operations or perform routine O&M.
        # We recommend that you do not include your AccessKey pair (AccessKey ID and AccessKey secret) in your project code for data security reasons.
        # In this example, the AccessKey pair is read from the environment variables to implement identity verification for API access.
        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:
            # Write code to print the response of the API operation based on your business requirements.
            response = client.create_file_uncompression_task_with_options(create_file_uncompression_task_request, runtime)
        except Exception as error:
            # You can choose to print the error if necessary.
            UtilClient.assert_as_string(error.message)

    @staticmethod
    async def main_async(
            args: List[str],
    ) -> None:
        # The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations is a high-risk operation. We recommend that you use a RAM user to call API operations or perform routine O&M.
        # We recommend that you do not include your AccessKey pair (AccessKey ID and AccessKey secret) in your project code for data security reasons.
        # In this example, the AccessKey pair is read from the environment variables to implement identity verification for API access.
        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:
            # Write code to print the response of the API operation based on your business requirements.
            await client.create_file_uncompression_task_with_options_async(create_file_uncompression_task_request, runtime)
        except Exception as error:
            # You can choose to print the error if necessary.
            UtilClient.assert_as_string(error.message)

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

Facturation

Lors de la décompression de fichiers d'archive, les éléments de facturation suivants sont générés côté OSS et côté IMM :

  • Côté OSS : Pour plus d'informations sur les tarifs, consultez Tarification OSS.

    API

    Élément de facturation

    Description

    GetObject

    Requêtes GET

    Des frais de requête vous sont facturés en fonction du nombre de requêtes abouties.

    Trafic sortant via Internet

    Si vous appelez l'opération GetObject à l'aide d'un point de terminaison public, tel que oss-cn-hangzhou.aliyuncs.com, ou d'un point de terminaison d'accélération, tel que oss-accelerate.aliyuncs.com, des frais de trafic sortant via Internet vous sont facturés en fonction de la taille des données.

    Récupération d'objets IA

    Si des objets IA sont récupérés, des frais de récupération de données IA vous sont facturés en fonction de la taille des objets IA récupérés.

    Capacité de récupération des données depuis Archive Direct Read

    Si des objets Archive dans un compartiment pour lequel l'accès en temps réel est activé sont récupérés, des frais de récupération de données Archive vous sont facturés en fonction de la taille des objets Archive récupérés.

    Accélération du transfert

    Si vous activez l'accélération du transfert et utilisez un point de terminaison d'accélération pour accéder à votre compartiment, des frais d'accélération du transfert vous sont facturés en fonction de la taille des données.

  • Côté IMM : Pour plus d'informations sur les tarifs, consultez Éléments de facturation IMM.

    Important

    À partir du 28 juillet 2025 à 11 h 00 (UTC+8), les services de compression et de décompression de fichiers IMM passeront d'un modèle gratuit à un modèle payant. Pour plus d'informations, consultez Annonce relative à l'ajustement de la facturation IMM.

    API

    Élément de facturation

    Description

    CreateFileCompressionTask

    FileProcess

    Des frais de compression vous sont facturés en fonction de la taille des fichiers source à compresser.

    CreateFileUncompressionTask

    Des frais de décompression vous sont facturés en fonction de la taille des fichiers décompressés.

    CreateArchiveFileInspectionTask

    FilePreview

    Des frais d'aperçu vous sont facturés en fonction de la taille de l'archive à consulter.

FAQ