Todos os produtos
Search
Central de documentação

Object Storage Service:Package and download objects as a ZIP file

Última atualização: Sep 02, 2026

O Object Storage Service (OSS) integra-se ao Function Compute, o que permite criar diversas aplicações e funções. Este tópico explica como usar o Function Compute para compactar vários objetos do OSS em um único arquivo ZIP e baixá-lo localmente.

Pré-requisitos

Como funciona

Baixar vários objetos do OSS em massa, especialmente muitos arquivos pequenos, pode ser lento e inconveniente. Com o Function Compute, você compacta os objetos no OSS, baixa o pacote compactado para o computador local e depois o descompacta. Esse método agiliza downloads em massa. A figura a seguir ilustra o fluxo de trabalho para usar o Function Compute na compactação e no download de objetos do OSS.压缩OSS文件

  1. Um usuário invoca a função e especifica o bucket e os objetos a compactar.

  2. O Function Compute baixa os objetos especificados do OSS e gera um pacote ZIP com nome aleatório.

  3. O Function Compute faz upload do pacote ZIP para o OSS.

  4. O Function Compute retorna a URL de download do pacote ZIP ao usuário.

  5. O usuário baixa o arquivo do OSS pela URL de download permanente retornada.

Observações de uso

  • O espaço em disco no ambiente de execução da função é limitado. Por isso, a função transmite dados tanto no download quanto no upload para armazenar em cache apenas uma pequena quantidade de dados na memória.

  • Para acelerar o processo, o Function Compute faz upload do arquivo ZIP no OSS durante a geração.

  • Ao enviar o arquivo ZIP para o OSS, a função utiliza o recurso de upload multipart do OSS para carregar partes simultaneamente por meio de múltiplas threads.

  • O tempo máximo de processamento para compactar arquivos com o Function Compute é de 24 horas. (Dados de teste: 57 objetos com tamanho total de 1,06 GB foram processados em 63 segundos).

Procedimento

Este exemplo descreve como usar o Function Compute para compactar e baixar vários objetos do diretório dir/ no bucket examplebucket na região China (Hangzhou) para um computador local.

  1. Implante a aplicação e obtenha seu nome de domínio público.

    One-click with ROS

    Use o Resource Orchestration Service (ROS) para implantar a aplicação do Function Compute com um clique.

    1. Abra o link do modelo de configuração com um clique.

    2. Na aba Configure Parameters, mantenha as configurações padrão de todos os parâmetros e clique em Next: Check and Confirm.

    3. Na aba Check and Confirm, clique em Create.

      O Status na aba Stack Information exibe Creating.

    4. Quando o Status da pilha mudar para Create_Success, clique em Outputs para encontrar o nome de domínio público.

    One-click with Serverless Application Center

    1. Implante o modelo de aplicação start-zip-oss pelo Serverless Application Center.

      Na página Create Application, o modelo de aplicação é start-zip-oss e o tipo de implantação é Directly Deploy. Configure os seguintes parâmetros principais:

      • Application Name: start-zip-oss-obvr

      • Role Name: AliyunFCServerlessDevsRole. As políticas anexadas incluem AliyunOSSReadOnlyAccess e AliyunFCFullAccess.

      • Service Status: O Function Compute e o Object Storage Service (OSS) devem estar ativados.

      • Advanced Settings: Selecione a região China (Hangzhou). Defina o nome do service como zip-oss, o nome da função como zip-oss-func e o ARN da função do RAM como AliyunFcDefaultRole (políticas anexadas: AliyunOSSFullAccess e AliyunFCDefaultRolePolicy).

      Após concluir a configuração, clique em Create and Deploy Default Environment.

    2. Obtenha o nome de domínio público.

      1. Clique em Result.

      2. No campo triggers, obtenha o nome de domínio público (urlInternet).

        fc zip oss service.
          service:
            role: acs:ram::1379186349xxx:role/aliyunfcdefaultrole
            internetAccess: true
            name: zip-oss
            description: zip oss sample
          function:
            handler: main.main_handler
            initializationTimeout: 3
            memorySize: 3072
            instanceType: e1
            name: zip-oss-func
            runtime: python2.7
            description: This is default function description by fc-deploy component
            timeout: 1800
            instanceConcurrency: 1
          region: cn-hangzhou
          triggers:
            - urlInternet: https://zip-oss-func-zip-oss-ayouyexxx.cn-hangzhou.fcapp.run
              name: http-test
              type: http
              config:
                methods:
                  - GET
                  - POST
                  - PUT
                authType: anonymous

    Manual with Serverless Devs CLI

    1. Instale o Serverless Devs.

      npm install -g @serverless-devs/s

      Verifique a instalação.

      s -v

      A saída a seguir indica instalação bem-sucedida:

      @serverless-devs/s: 2.1.1, s-home: /root/.s, linux-x64, node-v14.19.3
    2. Configure o Serverless Devs.

      s config add --AccessKeyID LTAI******** --AccessKeySecret  KZo1******** --access fc-access

      A tabela a seguir descreve os parâmetros.

      Parâmetro

      Descrição

      --AccessKeyID

      O AccessKey ID para acessar o Function Compute.

      --AccessKeySecret

      O AccessKey Secret para acessar o Function Compute.

      --access

      Um alias personalizado para as credenciais.

    3. Implante o modelo de aplicação start-zip-oss.

      1. Inicialize o projeto.

      2. s init start-zip-oss -d start-zip-oss
      3. Especifique valores para os itens de configuração conforme os exemplos a seguir.

      4. Parâmetro

        Exemplo

        Região onde a aplicação está localizada

        cn-hangzhou

        Serviço do Function Compute ao qual a aplicação pertence

        start-zip-oss

        Nome da função da aplicação

        zip-oss-func

        ARN da função do RAM configurada para o service do Function Compute ao qual a aplicação pertence

        acs:ram::137918634953****:role/test-role

      5. Acesse o diretório do projeto.

      6. cd start-zip-oss
      7. Implante o projeto.

      8. s deploy -y
      9. Anote o valor de system_url na saída.

      10. fc-zip-oss-service:
          region:   cn-hangzhou
          service:
            name: start-zip-oss
          function:
            name:       zip-oss-func
            runtime:    python2.7
            handler:    main.main_handler
            memorySize: 3072
            timeout:    1800
          url:
            system_url: https://zip-oss-func-start-zip-oss-ayouye****.cn-hangzhou.fcapp.run
          triggers:
            -
              type: http
              name: http-test
  2. No servidor ou em uma instância ECS, execute o comando a seguir para gerar um arquivo event.json. No arquivo, especifique o nome do bucket e o diretório que contém os objetos a baixar.

    cat <<EOF > event.json
    {
      "bucket": "examplebucket",
      "source-dir": "dir/"
    }
    EOF
    Nota

    O parâmetro source-dir deve ser um diretório dentro de um bucket; o diretório raiz não é suportado.

  3. O comando a seguir é um exemplo de solicitação.

    curl -v -L -o  oss.zip -d @./event.json https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run
    • oss.zip: Caminho local onde o pacote ZIP baixado será salvo.

      Nota

      Se a ferramenta de descompactação nativa do Windows falhar, use uma ferramenta de terceiros, como 7-Zip ou WinRAR.

    • https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run: A system_url retornada ao implantar o projeto.

    Para invocar esta função como uma função HTTP autenticada em vez de anônima, use um dos seguintes SDKs:

Perguntas frequentes

Adição de marcas d'água

Não. No entanto, é possível adicionar marcas d'água de texto ou imagem aos objetos no OSS pelos métodos a seguir:

  • Para objetos com permissões de leitura pública ou leitura/gravação pública

    Adicione parâmetros de marca d'água à URL do objeto. Para mais informações, consulte Image watermarks.

  • Para objetos com permissões privadas

    Adicione marcas d'água incluindo parâmetros de processamento de imagem ou de estilo de imagem no SDK. Para mais informações, consulte Process images by using SDKs.

URLs de download com limite de tempo

Não. Para criar uma URL com tempo de expiração, gere uma URL assinada que inclua o parâmetro Expires. Para mais informações, consulte Use object URLs.

Referências