Todos os produtos
Search
Central de documentação

Object Storage Service:ZIP package decompression

Última atualização: Sep 22, 2026

configure regras de descompactação para extrair automaticamente pacotes ZIP enviados para um diretório especificado do OSS. O Function Compute descompacta os pacotes e salva os objetos extraídos no diretório de destino.

Pré-requisito

O Function Compute deve estar ativado. Para ativá-lo, acesse a Function Compute.

Cenários

  • Upload em lote: comprima vários objetos pequenos em um único pacote ZIP para reduzir o tempo de upload.

  • Integridade de recursos: agrupe arquivos relacionados em um único pacote ZIP para garantir que todos os componentes sejam enviados juntos.

  • Preservação da estrutura de diretórios: empacote uma árvore de diretórios local em um arquivo ZIP e envie-o para o OSS. A regra de descompactação recria a estrutura de pastas original no bucket.

  • Distribuição de conteúdo: comprima objetos em um pacote ZIP e envie-o para o OSS. O pacote é descompactado nos diretórios especificados, o que reduz o tempo de transmissão e o consumo de largura de banda.

Como funciona

O OSS utiliza o Function Compute para descompactar pacotes ZIP enviados. A figura a seguir ilustra o processo.

image
  1. Um pacote ZIP é enviado para o diretório especificado pelo parâmetro Prefix em uma regra de descompactação.

  2. O trigger do Function Compute é invocado.

    Ao configurar uma regra de descompactação, autorize o trigger para que o OSS possa usar a função AliyunOSSEventNotificationRole para acessar o Function Compute.

  3. O Function Compute descompacta o pacote ZIP e salva os objetos extraídos no diretório especificado do OSS.

    Ao configurar uma regra de descompactação, autorize o Function Compute a ler e gravar no bucket do OSS.

Faturamento

A descompactação de pacotes ZIP gera custos tanto no OSS quanto no Function Compute. Transferências de dados entre o OSS e o Function Compute por endpoints internos são gratuitas.

  • No lado do OSS, há cobrança por chamadas de operações de API e armazenamento de objetos. Para mais informações, consulte Billing overview.

  • No lado do Function Compute, há cobrança por uso de vCPU, uso de memória e uso de disco com base na duração da execução. Para mais informações, consulte Billing overview.

    Por exemplo, se uma tarefa de descompactação de pacote ZIP usar uma instância do Function Compute com 3 GB de memória e vCPU de 2 núcleos, levar 5 minutos para ser concluída e o tamanho padrão do disco alocado para arquivos de armazenamento temporário for de 10 GB, os valores cobrados pelo Function Compute serão calculados com a seguinte fórmula:

Item de uso de recurso

Unidade

Fórmula

Exemplo de faturamento

Uso de vCPU

**vCPU-seconds**

Uso ativo de vCPU = Capacidade de vCPU × Duração da execução (segundos)

Se a função estiver configurada com 2 vCPUs e executar por 300 segundos, o uso de vCPU para uma única execução será: 2 × 300 = 600 **vCPU-seconds**.

Uso de memória

GB-seconds

Uso de memória = Capacidade de memória (GB) × Duração da execução (segundos)

Se a função estiver configurada com 3 GB de memória e executar por 300 segundos, o uso de memória para uma única execução será: 3 × 300 = 900 GB-seconds

Uso de disco

GB-seconds

Uso de disco = Capacidade de disco (GB) × Duração da execução (segundos)

Nota: até 512 MB de uso de disco são gratuitos.

Se a função estiver configurada com um disco temporário de 10 GB e executar por 300 segundos, o uso de disco para uma única execução será: (10-512/1024) × 300 = 2850 GB-seconds.

Limitações

  • Classes de armazenamento: um objeto Cold Archive precisa ser restaurado antes de ser descompactado. Um objeto Archive em um bucket sem acesso em tempo real a objetos Archive ativado também precisa ser restaurado antes da descompactação.

  • Nomenclatura de objetos e diretórios: codifique nomes de objetos e diretórios em UTF-8 ou GB 2312. Outras codificações podem causar falhas na descompactação ou nomes ilegíveis.

  • Tamanho do objeto e duração da descompactação: cada objeto em um pacote ZIP não pode exceder 1 GB. É possível aumentar a duração da descompactação se necessário. Para mais informações, consulte What do I do if a ZIP package fails to be decompressed due to a decompression timeout?

Configurar uma regra de descompactação de pacote ZIP

  1. Faça login no console do OSS.

  2. No painel de navegação à esquerda, clique em Buckets. Na página exibida, clique em o nome do bucket desejado.

  3. Na árvore de navegação à esquerda, escolha Data Processing > Decompress ZIP Package.

  4. clique em Decompress ZIP Package. No painel Decompress ZIP Package, configure os parâmetros descritos na tabela a seguir.

    Parâmetros

    Parâmetro

    Obrigatório

    Descrição

    Service Authorization

    Sim

    Autorize o Function Compute a ler e gravar no OSS e a executar funções.

    clique em Authorize. Conclua a autorização na página exibida.

    Authorize Trigger

    Sim

    Autorize o OSS a acessar o Function Compute.

    clique em Authorize. Conclua a autorização na página exibida. Se o OSS já estiver autorizado a acessar o Function Compute, o parâmetro Trigger Role será exibido no lugar do parâmetro Authorize Trigger.

    Prefix

    Não

    O prefixo que os nomes dos pacotes ZIP devem corresponder para acionar a descompactação. Se você enviar um pacote ZIP cujo nome contenha esse prefixo ou enviá-lo para o diretório especificado pelo prefixo, o Function Compute o descompactará. Se não for especificado, todos os pacotes ZIP enviados para o bucket serão descompactados.

    Importante

    Se você não especificar esse parâmetro, as tarefas de descompactação poderão ser executadas repetidamente. Portanto, recomendamos especificar um prefixo para cada regra de descompactação. Para mais informações, consulte How can I avoid trigger loops?

    Destination Directory

    Não

    O diretório onde os objetos extraídos serão armazenados. Se não for especificado, os objetos serão descompactados no diretório raiz do bucket.

    • Para armazenar os objetos extraídos em um subdiretório com o mesmo nome do pacote ZIP, selecione Add the compressed object name to the destination directory.

    • Para armazenar os objetos extraídos diretamente no diretório de destino sem criar um subdiretório, selecione Decompress to the destination directory. A tabela a seguir mostra exemplos de configuração.

    Aviso

    Para evitar interrupção do serviço, contaminação de dados ou perda de dados ao configurar regras de descompactação de pacote ZIP em um bucket com OSS-HDFS ativado, não defina o Destination Directory como .dlsdata/.

    Exemplos de configuração de descompactação

    Cenário

    Método de configuração

    Estrutura de armazenamento após a descompactação

    Descompactar todos os pacotes ZIP enviados para o diretório zipfolder no diretório destfolder, sem criar subdiretórios com os mesmos nomes dos pacotes ZIP.

    • defina Prefix como zipfolder/.

    • defina Destination Directory como destfolder.

    • selecione Decompress to the destination directory.

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

    Descompactar todos os pacotes ZIP enviados para o diretório zipfolder em subdiretórios com os mesmos nomes dos pacotes, no diretório raiz do bucket.

    configure os seguintes parâmetros:

    • defina Prefix como zipfolder/.

    • Deixe Destination Directory vazio.

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

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

    Descompactar todos os pacotes ZIP enviados para o diretório zipfolder em subdiretórios com os mesmos nomes dos pacotes, dentro do diretório destfolder.

    configure os seguintes parâmetros:

    • defina Prefix como zipfolder/.

    • defina Destination Directory como destfolder.

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

    bucket  ├─── zipfolder/   │    ├─── a.zip│    └─── b.zip└─── destfolder/     ├─── a/     │    ├─── a.txt     │    └─── ...     └─── b/          ├─── b.txt          └─── ...
  5. selecione 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. e clique em OK.

modifique uma regra de descompactação de pacote ZIP

modifique uma regra de descompactação para atualize o prefixo do trigger ou as configurações da função.

modifique o parâmetro Prefix

  1. Na página Decompress ZIP Package no console do OSS, localize o trigger que deseja modifique e clique em Edit na coluna Actions.

  2. Na aba Triggers da página de detalhes da função, localize o trigger e clique em Modify na coluna Actions.

  3. No painel Modify Trigger, modifique o parâmetro Object Prefix e mantenha as configurações padrão dos demais parâmetros.

  4. clique em OK.

modifique configurações da função

  1. Na aba Configurations da página de detalhes da função, clique em Modify na seção Basic Settings ou na seção Environment Information.

  2. modifique as configurações da função, como Memory e Execution Timeout Period.

    Para mais informações, consulte gerencie functions.

exclua um trigger

Nota

Triggers excluídos não podem ser restaurados. A exclusão de um trigger não interrompe tarefas de descompactação em andamento.

  1. Na aba Triggers da página de detalhes da função, localize o trigger que deseja exclua e clique em Delete na coluna Actions.

  2. Na mensagem exibida, clique em Delete.

Obter resultados da descompactação

Após a conclusão da função de descompactação, o OSS não retorna o resultado de forma proativa. Use os métodos a seguir para obter o resultado da descompactação e encaminhá-lo ao seu serviço de backend.

Método 1: Consultar o status da descompactação no modo de tarefas

Após ativar o modo de tarefas, cada execução da função de descompactação gera um registro de tarefa assíncrona. visualize o status da tarefa na lista de tarefas ou consulte-o por meio de uma operação de API.

  1. No console do Function Compute, acesse a página de detalhes da função de descompactação e clique em na aba Task.

  2. Na área de configuração do modo de tarefas, clique em Edit e ative Task Mode. O Task Mode está desativado por padrão. Nessa mesma área, também é possível configure Maximum Retry Attempts (padrão: 3), Message Time to Live (padrão: 1 dia) e Invocation Destination (padrão: não configurado).

  3. Após a ativação do Task Mode, cada execução da função de descompactação gera um registro de tarefa assíncrona. A lista de tarefas exibe o ID da tarefa, o status, o horário de início e término, a duração da execução, o número de tentativas, o ID da requisição e o ID da instância.

  4. Também é possível chamar a operação GetAsyncTask do Function Compute para consultar o status da tarefa. Um status retornado como Succeeded indica que a tarefa de descompactação foi concluída com sucesso.

Método 2: configure um destino de invocação assíncrona para notificações automáticas

Na área de configuração do modo de tarefas, ative Invoke Another Service on Success ou Invoke Another Service on Failure para notificar automaticamente um serviço de destino especificado após o término da tarefa de descompactação. Os seguintes tipos de serviço de destino são compatíveis:

  • Function Compute (FC)

  • ApsaraMQ for RocketMQ

  • Simple Message Queue (anteriormente MNS)

  • EventBridge

Método 3: Enviar notificações ao seu serviço de backend por meio de um callback HTTP personalizado

Os destinos de invocação assíncrona integrados não são compatíveis com callback HTTP personalizado. Se você precisar notificar um serviço de backend autogerenciado — por exemplo, um serviço implantado em um cluster ACK — sobre o resultado da descompactação, utilize a seguinte abordagem:

  1. crie uma função no Function Compute que envie uma requisição de notificação HTTP ao endpoint do seu serviço de backend.

  2. configure essa função como destino de invocação assíncrona da função de descompactação, seguindo os passos do Método 2.

  3. Após o término da tarefa de descompactação, o Function Compute invoca essa função, que então envia a notificação HTTP ao seu serviço de backend.

Referência

Package and baixe objects as a ZIP file

Perguntas frequentes

O que fazer se o upload de um pacote ZIP não acionar uma tarefa de descompactação no Function Compute?

Verifique o cabeçalho de resposta x-oss-event-status codificado em Base64. Se o valor decodificado de x-oss-event-status for {"Result": "Ok"}, a descompactação foi acionada. Se o valor decodificado de x-oss-event-status não for {"Result": "Ok"}, reenvie o pacote ZIP. Para mais informações, consulte Simple upload.

Nota

Cada objeto em um pacote ZIP não pode exceder 1 GB. A duração máxima padrão de descompactação é de 2 horas.

O que fazer se a descompactação de um pacote ZIP falhar por tempo limite?

A duração máxima padrão de descompactação é de 2 horas, podendo ser aumentada para 24 horas. Para modifique a duração:

  1. Na página Decompress ZIP Package no console do OSS, localize o trigger que deseja modifique e clique em Edit na coluna Actions.

  2. Na página de detalhes da função, clique em na aba Configurations.

  3. clique em Modify ao lado de Environment Information.

  4. modifique o valor do campo Execution Timeout Period e clique em OK.

Como descompactar um pacote que contém um objeto maior que 1 GB?

Se um objeto em um pacote ZIP exceder 1 GB, armazene o pacote no File Storage NAS e descompacte-o por lá. Isso gera custos de armazenamento do NAS. Consulte o repositório GitHub unzip-oss-nas.

O Function Compute descompacta pacotes ZIP dentro de outros pacotes ZIP?

Não. O Function Compute descompacta o pacote ZIP apenas uma vez.

Se o pacote ZIP contiver pacotes ZIP aninhados, os pacotes internos não serão descompactados. Envie-os separadamente para acionar outra tarefa de descompactação.

A descompactação de pacotes ZIP permite descompactar dados para um bucket diferente?

Não. A descompactação é limitada a diretórios dentro do mesmo bucket. Para descompactar em um bucket diferente, implemente uma função personalizada no Function Compute.

Os objetos extraídos durante a descompactação de um pacote ZIP aparecem no diretório de destino de forma síncrona?

Sim. O Function Compute faz upload dos objetos extraídos para o diretório de destino enquanto continua descompactando os dados restantes.

O Function Compute envia os objetos descompactados de um pacote ZIP para o OSS enquanto descompacta os dados restantes do pacote.

Como verificar se uma tarefa de descompactação foi concluída?

visualize os logs de invocação da função para verificar o status da descompactação.

  1. Na página Decompress ZIP Package no console do OSS, localize o trigger e clique em Edit na coluna Actions.

  2. Na página de detalhes da função, clique em na aba Logs.

  3. clique em Enable.

  4. Vincule a política AliyunLogFullAccess à função RAM. Para mais informações, consulte gerencie permissions for a RAM role.

  5. Se uma tarefa de descompactação for acionada ao enviar um pacote ZIP, visualize as informações de log na aba Logs para verificar se a descompactação foi concluída.

    Se o log contiver "FC Invoke End", a tarefa de descompactação foi concluída.

    image.png

A descompactação de pacotes ZIP é compatível com arquivos .rar e .tar.gz?

Não. Apenas arquivos .zip são compatíveis.

A descompactação de pacotes ZIP é compatível apenas com arquivos ZIP.

Uma notificação é enviada após a conclusão da descompactação?

Não. O OSS não retorna o resultado da descompactação de forma proativa. Para mais informações sobre como obter o resultado, consulte Obtain decompression results.

O OSS é compatível com compactação online?

Não, o OSS não é compatível com compactação online.

Use o Function Compute para empacotar e baixe objetos. Use Function Compute to package and baixe OSS objects.

Posso usar a descompactação de pacotes ZIP para descompactar pacotes ZIP multipartes?

Não. A descompactação de pacotes ZIP não consegue mesclar ou descompactar arquivos ZIP multipartes (divididos).

A descompactação de pacotes ZIP não mescla conteúdo de pacotes ZIP multipartes. Portanto, o recurso não consegue descompactar pacotes ZIP multipartes.

Por que o botão Decompress ZIP Package está acinzentado?

  • O Function Compute não está ativado. ative-o na Function Compute.

  • A descompactação de pacotes ZIP não é compatível com a região do seu bucket. Para mais informações, consulte Limitations.