Todos los productos
Search
Centro de documentos

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

Última actualización: Sep 02, 2026

Object Storage Service (OSS) se integra con Function Compute, lo que permite crear diversas aplicaciones y funciones. Este tema explica cómo utilizar Function Compute para empaquetar varios objetos de OSS en un solo archivo ZIP y descargarlo localmente.

Requisitos previos

Funcionamiento

Descargar múltiples objetos de OSS de forma masiva, especialmente si son pequeños, puede resultar lento e inconveniente. Al usar Function Compute, primero empaqueta los objetos en OSS, descarga el paquete comprimido a su computadora local y luego lo descomprime. Este método agiliza las descargas masivas. El siguiente diagrama ilustra el flujo de trabajo para empaquetar y descargar objetos de OSS mediante Function Compute.压缩OSS文件

  1. Un usuario invoca la función y especifica el bucket y los objetos que se van a comprimir.

  2. Function Compute descarga los objetos especificados de OSS y genera un paquete ZIP con un nombre aleatorio.

  3. Function Compute carga el paquete ZIP en OSS.

  4. Function Compute devuelve al usuario la URL de descarga del paquete ZIP.

  5. El usuario descarga el archivo desde OSS mediante la URL de descarga permanente devuelta.

Notas de uso

  • El espacio en disco del entorno de ejecución de la función es limitado. Por ello, la función transmite los datos tanto en la descarga como en la carga para almacenar en caché solo una pequeña cantidad de datos en memoria.

  • Para acelerar el proceso, Function Compute carga el archivo ZIP en OSS mientras se genera.

  • Al cargar el archivo ZIP en OSS, la función utiliza la función de carga multiparte de OSS para subir partes simultáneamente mediante varios subprocesos.

  • El tiempo máximo de procesamiento para comprimir archivos con Function Compute es de 24 horas (datos de prueba: 57 objetos con un tamaño total de 1.06 GB se procesaron en 63 segundos).

Procedimiento

Este ejemplo describe cómo usar Function Compute para empaquetar y descargar varios objetos del directorio dir/ en el bucket examplebucket de la región China (Hangzhou) hacia una computadora local.

  1. Despliegue la aplicación y obtenga su nombre de dominio público.

    One-click with ROS

    Utilice Resource Orchestration Service (ROS) para desplegar la aplicación de Function Compute con un solo clic.

    1. Abra el enlace de la plantilla de configuración con un clic.

    2. En la pestaña Configure Parameters, conserve la configuración predeterminada de todos los parámetros y haga clic en Next: Check and Confirm.

    3. En la pestaña Check and Confirm, haga clic en Create.

      El campo Status en la pestaña Stack Information muestra Creating.

    4. Cuando el Status de la pila cambie a Create_Success, haga clic en la pestaña Outputs para encontrar el nombre de dominio público.

    One-click with Serverless Application Center

    1. Despliegue la plantilla de aplicación start-zip-oss desde Serverless Application Center.

      En la página Create Application, la plantilla de aplicación es start-zip-oss y el tipo de despliegue es Directly Deploy. Configure los siguientes parámetros clave:

      • Application Name: start-zip-oss-obvr

      • Role Name: AliyunFCServerlessDevsRole. Las directivas adjuntas incluyen AliyunOSSReadOnlyAccess y AliyunFCFullAccess.

      • Service Status: Function Compute y Object Storage Service (OSS) están activados.

      • Advanced Settings: Seleccione la región China (Hangzhou). Establezca el nombre del servicio como zip-oss, el nombre de la función como zip-oss-func y el ARN del rol de RAM como AliyunFcDefaultRole (directivas adjuntas: AliyunOSSFullAccess y AliyunFCDefaultRolePolicy).

      Después de completar la configuración, haga clic en Create and Deploy Default Environment.

    2. Obtenga el nombre de dominio público.

      1. Haga clic en la pestaña Result.

      2. En el campo de disparadores, obtenga el nombre de dominio 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 con Serverless Devs CLI

    1. Instale Serverless Devs.

      npm install -g @serverless-devs/s

      Verifique la instalación.

      s -v

      La siguiente salida indica que la instalación se realizó correctamente:

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

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

      La siguiente tabla describe los parámetros.

      Parámetro

      Descripción

      --AccessKeyID

      El AccessKey ID para acceder a Function Compute.

      --AccessKeySecret

      El AccessKey Secret para acceder a Function Compute.

      --access

      Un alias personalizado para las credenciales.

    3. Despliegue la plantilla de aplicación start-zip-oss.

      1. Inicialice el proyecto.

      2. s init start-zip-oss -d start-zip-oss
      3. Especifique valores para los elementos de configuración según los siguientes ejemplos.

      4. Parámetro

        Ejemplo

        Región donde se encuentra la aplicación

        cn-hangzhou

        Servicio de Function Compute al que pertenece la aplicación

        start-zip-oss

        Nombre de la función de la aplicación

        zip-oss-func

        ARN del rol de RAM configurado para el servicio de Function Compute al que pertenece la aplicación

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

      5. Vaya al directorio del proyecto.

      6. cd start-zip-oss
      7. Despliegue el proyecto.

      8. s deploy -y
      9. Registre el valor de system_url de la salida.

      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. En su servidor o en una instancia de ECS, ejecute el siguiente comando para generar un archivo event.json. En el archivo, especifique el nombre del bucket y el directorio que contiene los objetos que se van a descargar.

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

    El parámetro source-dir debe ser un directorio dentro de un bucket; no se admite el directorio raíz.

  3. El siguiente comando es un ejemplo de solicitud.

    curl -v -L -o  oss.zip -d @./event.json https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run
    • oss.zip: La ruta local donde se guarda el paquete ZIP descargado.

      Nota

      Si la herramienta de descompresión integrada de Windows falla, utilice una herramienta de terceros, como 7-Zip o WinRAR.

    • https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run: el valor system_url devuelto al desplegar el proyecto.

    Para invocar esto como una función HTTP autenticada en lugar de anónima, utilice uno de los siguientes SDK:

Preguntas frecuentes

Agregar marcas de agua

No. Sin embargo, puede agregar marcas de agua de texto o imagen a los objetos en OSS mediante los siguientes métodos:

  • Para objetos con permisos de lectura pública o de lectura/escritura pública

    Agregue parámetros de marca de agua a la URL del objeto. Para obtener más información, consulte Image watermarks.

  • Para objetos con permisos privados

    Agregue marcas de agua incluyendo parámetros de procesamiento de imágenes o parámetros de estilo de imagen en el SDK. Para obtener más información, consulte Process images by using SDKs.

URL de descarga con límite de tiempo

No. Para crear una URL con fecha de caducidad, debe generar una URL firmada que incluya el parámetro Expires. Para obtener más información, consulte Use object URLs.

Referencias