/
S3BucketTray

S3BucketTray

Datos Generales

Tipo de Bandeja

Bucket S3

Nombre Calificado

com.latintech.thuban.docintro.tray.S3BucketTray

Extiende de

AbstractTray

Descripción

Bandeja de trabajo que permite recuperar los archivos de un bucket S3.

Soporta implementaciones locales de S3 que soporte la SDK de AWS.

Se comporta igual y soporta los mismos Workitem Marshallers y procesadores que una FolderTray con el agregado que elimina del bucket el archivo original si fue procesado correctamente.

Si el archivo no pudo ser procesado y fue a error, el archivo original permanece en el bucket.

A diferencia de una FolderTray, la cantidad de archivos a procesar hace referencia a la cantidad de archivos a tomar del bucket S3. La cantidad final de archivos procesados puede ser menor si se aplica un filtro de includeFiles ya que dicho filtro se aplicará luego del count, con lo cuál la cantidad de archivos a procesar puede ser menor o nula dependiendo del filtro configurado.

Esto se hace así por limitaciones de filtro de los servicios de S3 de AWS y para evitar llamadas extras que consumen tiempo, recursos y dinero.

Disponible desde Versión

8.0

Parámetros soportados

A continuación se listarán todos los parámetros aceptados por la bandeja. Los títulos que anteceden cada tabla son los nombres de los parámetros, los mismos son caseSensitive.

name

Tipo

String

Requerido

Sí.

Descripción

Es el nombre que se le otorga a esta instancia particular de la bandeja que se está definiendo en el XML de DocIntro. Es utilizado para referencia la bandeja en el TrayManager.

bucketRegion

Tipo

String

Requerido

Sí.

Descripción

Es la región en formato AWS en la cuál se encuentra el bucket S3 desde el cuál se tomarán los archivos. Ejemplo: us-east-1

bucketName

Tipo

String

Requerido

Sí.

Descripción

Es el nombre del bucket S3 desde el cuál se tomarán los archivos.

accessKeyAlias

Tipo

String

Requerido

No. En caso de no especificar se utilizaran las credenciales por defecto para S3 del security.properties. De no existir ninguna credencial, un error de falta de credenciales será emitido.

Descripción

Es un alias o llave para recuperar el accessKey de AWS de acceso programático desde el archivo security.properties de Thuban. Dichas credenciales deben contar con privilegios para leer, escribir y eliminar en el bucket S3.

accessSecretAlias

Tipo

String

Requerido

No. En caso de no especificar se utilizaran las credenciales por defecto para S3 del security.properties. De no existir ninguna credencial, un error de falta de credenciales será emitido.

Descripción

Es un alias o llave para recuperar el accessSecret de AWS de acceso programático desde el archivo security.properties de Thuban. Dichas credenciales deben contar con privilegios para leer, escribir y eliminar en el bucket S3.

tempFolder

Tipo

Carpeta

Requerido

Sí. Además la misma debe existir.

Descripción

Carpeta a la cual se descargarán y posteriormente procesarán los archivos del bucket S3.

outputFolder

Tipo

Carpeta

Requerido

Sí. Además la misma debe existir.

Descripción

Carpeta dónde serán trasladados todos los archivos que hayan sido procesados correctamente.

errorFolder

Tipo

Carpeta

Requerido

Sí. Además la misma debe existir.

Descripción

Carpeta dónde serán traslados todos los archivos que al ser procesados hayan arrojado un error. Junto al archivo, en la misma carpeta se depositará un archivo de tipo .log con el detalle del error.

className

Tipo

String

Requerido

No

Descripción

Indica el ID de la clase documental de destino de los archivos a ser procesados. No es necesario definirla aquí, puede ser definida posteriormente en un procesador.

internalName

Tipo

String

Requerido

No

Descripción

Permite sobreescribir la configuración de la clase documental indicando aquí de que forma se debe conformar el nombre del documento en Thuban.

Puede ser definido posteriormente en un procesador de subida de documentos.

En caso de no informar nada en ningún lado del DocIntro, al momento de subirse el documento a Thuban se generará el nombre como está definido en la clase documental.

count

Tipo

Integer

Requerido

No

Descripción

Indica cuántos archivos serán procesados por la bandeja en cada ejecución del DocIntro.

En caso de no estar especificado se procesará de a 1 archivo a la vez.

fields

Tipo

Map

Requerido

Sí, aunque puede estar vacío.

Descripción

Mapa de campos que se quiere agregar el ítem de trabajo de la bandeja.

Ejemplo

<property name="fields"> <map> <entry> <key><value>F_INGRESO</value></key> <value>$F{'yyyy-MM-dd'}</value> </entry> </map> </property>

includeFiles

Tipo

String

Requerido

No

Descripción

Expresión regular de inclusión de archivos. Si es null se ignora este parámetro.

Ejemplo

.*.([pP][dD][fF])$ → Procesa solo archivos .pdf

keepOriginalName

Tipo

Boolean

Requerido

No. Por defecto asume el valor “true

Descripción

Le indica a la bandeja si debe mantener el nombre original del archivo que procesa.

processOldestFirst

Tipo

Boolean

Requerido

No. Por defecto asume el valor “false

Descripción

Le indica a la bandeja si debe procesar primero los archivos más antiguos.

maskTool

Tipo

ThubanMaskTool

Requerido

No

Descripción

Esta es una propiedad que referencia otro Bean de utilidades del docintro que permite reemplazar valores de campos o asignar valores a campos en función de Máscaras. Por ejemplo, si se define una campo:

$F{'yyyy-MM-dd'}

Esa máscara será reemplazada por la fecha del momento con ese formato por el maskTool.

Ejemplos de Configuración

Simple

<bean id="s3BucketTray" class="com.latintech.thuban.docintro.tray.S3BucketTray"> <property name="tempFolder" value="C:\Docintro\temp"/> <!-- MODIFICAR RUTA--> <property name="outputFolder" value="C:\Docintro\output"/> <!-- MODIFICAR RUTA--> <property name="errorFolder" value="C:\Docintro\error"/> <!-- MODIFICAR RUTA--> <property name="bucketRegion" value="us-east-1"/> <property name="bucketName" value="mibuckets3"/> <property name="className" value="MI_CLASE_DOCUMENTAL"/> <property name="internalName" value=""/> <property name="fields"> <map> </map> </property> <property name="marshallingManager" ref="fileMarshallingManager"/> <property name="name" value="s3BucketTray"/> </bean>

Completa

<bean id="s3BucketTray" class="com.latintech.thuban.docintro.tray.S3BucketTray"> <property name="tempFolder" value="C:\Docintro\temp"/> <!-- MODIFICAR RUTA--> <property name="outputFolder" value="C:\Docintro\output"/> <!-- MODIFICAR RUTA--> <property name="errorFolder" value="C:\Docintro\error"/> <!-- MODIFICAR RUTA--> <property name="bucketRegion" value="us-east-1"/> <property name="bucketName" value="mibuckets3"/> <property name="accessKeyAlias" value="docintro.aws.s3.tray.accessid"/> <property name="accessSecretAlias" value="docintro.aws.s3.tray.accessSecret"/> <property name="className" value="MI_CLASE_DOCUMENTAL"/> <property name="internalName" value=""/> <property name="includeFiles" value=".*\.([pP][dD][fF])$"/> <property name="count" value="10"/> <!-- CANTIDAD DE IMAGENES PROCESA --> <property name="fields"> <map> <entry key="ESTADO" value="INGRESADO S3"/> </map> </property> <property name="marshallingManager" ref="fileMarshallingManager"/> <property name="name" value="s3BucketTray"/> </bean>

 

Related content