Para descomprimir automáticamente los archivos comprimidos que usted carga en Object Storage Service (OSS), puede desplegar una aplicación con un solo clic desde el centro de aplicaciones de Function Compute. Cuando se carga un archivo ZIP que coincide con una regla de descompresión en Object Storage Service, se activa automáticamente una función de Function Compute para descomprimirlo. Una vez finalizado el proceso, Function Compute carga los archivos extraídos en un directorio específico de Object Storage Service.
Contexto
A continuación se muestra el diagrama de flujo del proceso.
Notas
Utilice la codificación UTF-8 o GB 2312 para los nombres de archivos y carpetas. Esto evita caracteres incorrectos o interrupciones durante la descompresión.
Al cargar un archivo comprimido en un bucket, no seleccione Archive Storage ni Cold Archive como clase de almacenamiento. De lo contrario, la función no se activará.
Ningún archivo individual dentro del comprimido que cargue en un bucket debe superar 1 GB. Si un archivo es mayor a 1 GB, la descompresión podría fallar.
El tiempo máximo de descompresión para un solo archivo comprimido es de 2 horas. La tarea falla si supera este límite de tiempo.
El tiempo de espera predeterminado para la ejecución de la función es de 2 horas. Puede ajustar este periodo según sus necesidades.
Requisitos previos
Function Compute está activado. Para obtener más información, consulte Activate Function Compute.
Object Storage Service (OSS) está activado y se creó un bucket. Para obtener más información, consulte Create a bucket.
Procedimiento
Inicie sesión en la consola de Function Compute. En el panel de navegación izquierdo, haga clic en Applications.
-
En la página Applications, haga clic en Create Application. Luego, en la página Create Application, seleccione un método de creación.
Este documento toma como ejemplo la opción Use a Template to Create an Application.
En la página Create Application, busque la tarjeta Auto-decompress ZIP Files Uploaded To OSS en la sección de plantillas. Pase el puntero sobre la tarjeta y haga clic en Create Now.
-
En la página Create Application, configure los siguientes parámetros y haga clic en Create and Deploy Default Environment.
La siguiente tabla describe los elementos de configuración principales. Para los demás elementos, use los valores predeterminados.
Elemento de configuración
Descripción
Basic Configurations
Deployment Type
Seleccione Directly Deploy.
Role Name
El rol predeterminado es AliyunFCServerlessDevsRole. Si los permisos actuales son insuficientes, haga clic en Add Policy, seleccione la política obligatoria en el cuadro de diálogo y haga clic en Add.
Advanced Settings
RAM role ARN
Seleccione el rol que utiliza OSS para activar la función. Asegúrese de que las políticas de acceso AliyunOSSFullAccess y AliyunFCDefaultRolePolicy estén adjuntas a este rol.
OSS bucket name
Seleccione el bucket que creó.
Prefix
Establezca el prefijo del archivo. El valor predeterminado es src.
ImportanteAsegúrese de que los prefijos de distintos activadores dentro del mismo bucket sean únicos. De lo contrario, no se podrá crear la aplicación.
Destination directory
Establezca el directorio de destino para los archivos descomprimidos. El valor predeterminado es dst.
NotaPara evitar que la función se active en bucle, configure este directorio con una ruta distinta a la especificada en Prefix.
Keep archive name as directory
Indica si se conserva el nombre del archivo comprimido como un directorio en la ruta. Valores válidos:
-
true: crea un subdirectorio. Por ejemplo, si Destination Directory es target y el archivo comprimido se llama source.zip, los archivos extraídos se guardan en target/source/....
false: descomprime los archivos directamente en el directorio de destino. En el ejemplo anterior, la ruta de los archivos descomprimidos sería target/....
Trigger RAM role ARN
El rol predeterminado es AliyunOSSEventNotificationRole. OSS utiliza este rol para enviar notificaciones de eventos que invocan la función.
-
-
Pruebe la aplicación.
Inicie sesión en la consola de Object Storage Service (OSS) y haga clic en el bucket que seleccionó al crear la aplicación.
-
Dentro del bucket seleccionado, cargue un archivo .zip en una ruta que comience con el Prefix configurado. Esta acción activa la función para descomprimir automáticamente el archivo y guardar su contenido en el Destination Directory especificado.
Por ejemplo, si establece Prefix en source y Destination Directory en target, cargar un archivo .zip en una ruta como source/data.zip o source1/test.zip activará la función. Los archivos extraídos se guardarán en el directorio target.
Referencias
La aplicación de despliegue con un solo clic descrita en este documento solo admite la descompresión de archivos ZIP. Para descomprimir archivos en otros formatos, consulte decompress-oss.
Si solo necesita descomprimir archivos ZIP cargados en OSS, puede configurar la descompresión automática directamente en OSS. Para obtener más información, consulte Upload and automatically decompress a ZIP package.
Para empaquetar y descargar archivos de OSS mediante Function Compute, consulte Package multiple files into a ZIP archive for download.