Saltar al contenido

Carga de Múltiples Archivos S3

Familiarícese con el Widget de carga de varios archivos y configurar servicios web de Amazon S3 antes de desplegar esta funcionalidad.

Imagen 1

Los requisitos mínimos para combinar la carga de múltiples archivos y las funcionalidades de almacenamiento de S3 son algún tipo de campo único que se agrega al frente del nombre del archivo de S3 para asignarlo dentro de la aplicación.

Imagen 2

Este campo organizará los archivos agregando un prefijo al nombre del archivo con un GUID y se usará para asignarlo al depósito S3. En este ejemplo, el ID de grupo se utilizará para la asignación del archivo S3 y limitará el acceso al archivo para los usuarios que pertenecen a ese grupo.

Imagen 3

Esta funcionalidad se basa en una tabla de Usuario, ya sea una específica de la aplicación o la tabla de Vinyl pública User_Read, siempre que pueda aplicar la función Who('userid') para identificar al usuario actual.

Imagen 4

También se deben configurar grupos y se puede utilizar una tabla UserGroup para aplicar seguridad basada en alcance.

Imagen 5

En la página donde se realizarán las cargas, debe existir un panel que almacene el GUID, en este ejemplo la tabla UserParameter con una columna para elegir un grupo al que pertenece el usuario; este panel está en el lado izquierdo en este ejemplo.

Configure el widget de carga de archivos múltiples en otro panel con un objeto comercial dirigido a UserParameter. En el evento Actualización de este objeto de negocio, configure tres acciones.

  • Una regla de inserción CRUD de XP para insertar los archivos en el depósito S3. En esta regla de inserción, concatene el ID de grupo + '/' + el nombre del archivo.

  • Otra regla CRUD Insert para crear registros en una tabla local (en este ejemplo, llamada S3File) que contiene la información del archivo (pero no el contenido real del archivo); asegúrese de que el nombre del archivo se almacene de manera idéntica al inserto del depósito S3. El uso de esta tabla para asignar el archivo S3 optimizará los tiempos de carga de la página para que solo se acceda a un archivo S3 a la vez.

  • (Opcional) Utilice el complemento Persistente – Actualizar fila para optimizar la experiencia del usuario.

El tercer panel de esta página debe tener un objeto comercial dirigido a la tabla especificada en el segundo inserto CRUD. Esto tendrá la columna Nombre de archivo con el prefijo ID de grupo. Vincule este panel al panel Primer parámetro de usuario (en este ejemplo, el de la izquierda), con una declaración LIKE en el ID de grupo y el Nombre de archivo. Aquí es donde entra en juego el prefijo GUID del nombre de archivo. Esto permitirá que la aplicación limite el acceso a los archivos S3 según la configuración de su elección.

Imagen 6

Debido a que el panel inferior se encuentra en la parte superior de la tabla local y no en el depósito S3 real, el acceso de descarga al contenido real del archivo se realizará en una página emergente vinculada por el nombre del archivo. La página emergente tendrá un panel con la tabla del depósito S3 detrás.

Imagen 7

Descripción General del Vídeo de Carga de Varios Archivos