Cambios en las notificaciones de eventos de S3 API de la versión 1 a la versión 2 - AWS SDK for Java 2.x

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cambios en las notificaciones de eventos de S3 API de la versión 1 a la versión 2

En este tema se detallan los cambios en las notificaciones API de eventos de S3 de la versión 1.x (v1) a la versión 2 .x (v2) del. AWS SDK for Java

Cambios de alto nivel

Cambios estructurales

La V1 usa clases internas estáticas para los EventNotificationRecord tipos y sus atributos, mientras que la v2 usa clases públicas independientes para los EventNotificationRecord tipos.

Cambios en la convención de nomenclatura

En la versión 1, los nombres de las clases de atributos incluyen el sufijo Entidad, mientras que en la versión 2 se omite este sufijo para simplificar la nomenclatura: por ejemplo, eventDataen lugar de. eventDataEntity

Cambios en las dependencias, los paquetes y los nombres de las clases

En la versión 1, API las clases de notificación de eventos de S3 se importan de forma transitiva junto con el módulo S3 () artifactId aws-java-sdk-s3. Sin embargo, en la versión 2, debes añadir una dependencia al s3-event-notifications artefacto.

Cambio v1 v2

dependencias Maven

<dependencyManagement> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-bom</artifactId> <version>1.X.X</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</artifactId> </dependency> </dependencies>
<dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.X.X1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3-event-notifications</artifactId> </dependency> </dependencies>
Package name com.amazonaws.services.s3.event software.amazon.awssdk.eventnotifications.s3.model
Nombres de clase

S3 EventNotification

S3 S3EventNotification. EventNotificationRecord

S3EventNotification. GlacierEventDataEntity

S3EventNotification. IntelligentTieringEventDataEntity

S3EventNotification. LifecycleEventDataEntity

S3EventNotification. ReplicationEventDataEntity

S3EventNotification. RequestParametersEntity

S3EventNotification. ResponseElementsEntity

S3EventNotification. RestoreEventDataEntity

S3 EventNotification S3 BucketEntity

Entidad S3 S.3 EventNotification

EventNotificationS3 S3. ObjectEntity

S3EventNotification. TransitionEventDataEntity

S3EventNotification. UserIdentityEntity

S3 EventNotification

S3 EventNotificationRecord

GlacierEventData

IntelligentTieringEventData

LifecycleEventData

ReplicationEventData

RequestParameters

ResponseElements

RestoreEventData

S3 Bucket

S3

Objeto S3

TransitionEventData

UserIdentity

1 Última versión.

APIcambios

JSONhacia S3EventNotification y hacia atrás

Caso de uso v1 v2
Crear a S3EventNotification partir de JSON una cadena
S3EventNotification notification = S3EventNotification.parseJson(message.body());
S3EventNotification notification = S3EventNotification.fromJson(message.body());
Convertir S3EventNotification en JSON cadena
String json = notification.toJson();
String json = notification.toJson();

Accede a los atributos de S3EventNotification

Caso de uso v1 v2
Recuperar registros de una notificación
List<S3EventNotification.S3EventNotificationRecord> records = notifcation.getRecords();
List<S3EventNotificationRecord> records = notification.getRecords();
Recupera un registro de una lista de registros
S3EventNotification.S3EventNotificationRecord record = records.stream().findAny().get();
S3EventNotificationRecord record = records.stream().findAny().get();
Recupera datos de eventos de Glacier
S3EventNotification.GlacierEventDataEntity glacierEventData = record.getGlacierEventData();
GlacierEventData glacierEventData = record.getGlacierEventData();
Recupere los datos de un evento de restauración de un evento de Glacier
S3EventNotification.RestoreEventDataEntity restoreEventData = glacierEventData.getRestoreEventDataEntity();
RestoreEventData restoreEventData = glacierEventData.getRestoreEventData();
Recupera los parámetros de la solicitud
S3EventNotification.RequestParametersEntity requestParameters = record.getRequestParameters();
RequestParameters requestParameters = record.getRequestParameters();
Recupere los datos de los eventos de Intelligent Tiering
S3EventNotification.IntelligentTieringEventDataEntity tieringEventData = record.getIntelligentTieringEventData();
IntelligentTieringEventData intelligentTieringEventData = record.getIntelligentTieringEventData();
Recupere los datos de los eventos del ciclo de vida
S3EventNotification.LifecycleEventDataEntity lifecycleEventData = record.getLifecycleEventData();
LifecycleEventData lifecycleEventData = record.getLifecycleEventData();
Recupera el nombre del evento como enumeración
S3Event eventNameAsEnum = record.getEventNameAsEnum();
//getEventNameAsEnum does not exist; use 'getEventName()' String eventName = record.getEventName();
Recupera los datos de los eventos de replicación
S3EventNotification.ReplicationEventDataEntity replicationEntity = record.getReplicationEventDataEntity();
ReplicationEventData replicationEventData = record.getReplicationEventData();
Recupere la información del bucket y de los objetos de S3
S3EventNotification.S3Entity s3 = record.getS3();
S3 s3 = record.getS3();
Recupera la información de identidad del usuario
S3EventNotification.UserIdentityEntity userIdentity = record.getUserIdentity();
UserIdentity userIdentity = record.getUserIdentity();
Recupera los elementos de respuesta
S3EventNotification.ResponseElementsEntity responseElements = record.getResponseElements();
ResponseElements responseElements = record.getResponseElements();

Migre S3EventNotification utilizando la aws-lambda-java-events biblioteca.

Si aws-lambda-java-eventssolía trabajar con eventos de notificación de S3 dentro de una función Lambda, le recomendamos que actualice a la última versión 3.x.x. Las versiones recientes eliminan todas las dependencias de la versión AWS SDK for Java 1.x de la notificación de eventos de S3. API