Saltar al contenido

Carga múltiple de archivos S3 en Jitterbit App Builder

Introducción

Puedes usar el widget de Carga Múltiple de Archivos en App Builder junto con los servicios web de Amazon S3. Este artículo demuestra cómo se puede hacer.

Imagen 1

Requisitos

Para combinar el widget de Carga Múltiple de Archivos con las funcionalidades de almacenamiento S3 de Amazon, necesitas un campo único que se agregue al principio del nombre de archivo S3 para mapearlo dentro de la aplicación. Este campo organizará los archivos al agregar un prefijo al nombre del archivo con un GUID y se utilizará para mapear al bucket S3.

Imagen 2

Ejemplo

En este ejemplo, GroupID se utilizará para el mapeo al archivo S3 y limitar el acceso al archivo para los usuarios que pertenecen a ese grupo.

Imagen 3

Esta funcionalidad depende de una tabla User, ya sea una específica para la aplicación o la tabla pública User_Read, siempre que puedas aplicar la función Who('userid') para identificar al usuario actual.

Imagen 4

Los grupos también deben configurarse, y se puede utilizar una tabla UserGroup para aplicar seguridad basada en el alcance.

Imagen 5

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

Configura el widget de Carga Múltiple de Archivos en otro panel con un objeto de negocio dirigido a UserParameter. En el evento de Actualización de este objeto de negocio, configura tres acciones:

  • Una regla de Inserción XP CRUD para insertar los archivos en el bucket S3. En esta regla de Inserción, concatena GroupID + '/' + FileName.

  • Otra regla de inserción CRUD 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 a la inserción del bucket S3. Usar esta tabla para mapear al archivo S3 optimizará los tiempos de carga de la página, de modo que solo se acceda a un archivo S3 a la vez.

  • (Opcional) Utilice el plugin Persistable – Refresh Row para optimizar la experiencia del usuario.

El tercer panel en esta página debe tener un objeto de negocio que apunte a la tabla especificada en la segunda inserción CRUD. Esto tendrá la columna Nombre del Archivo con el prefijo GroupID. Vincule este panel al primer panel de UserParameter (en este ejemplo, el de la izquierda), con una declaración LIKE en el GroupID al Nombre del Archivo. Aquí es donde entra en juego el prefijo GUID del Nombre del Archivo. Esto permitirá que la aplicación limite el acceso a los archivos S3 según la configuración de su elección.

Image 6

Dado que el panel inferior se encuentra sobre la tabla local y no sobre el bucket S3 real, el acceso de descarga al contenido real del archivo estará en una página emergente vinculada por el FileName. La página emergente tendrá un panel con la tabla del bucket S3 detrás de ella.

Image 7

Video demo