

# Administración de anotaciones
<a name="annotations-managing"></a>

Puede agregar, recuperar y eliminar anotaciones en los objetos de Amazon S3 mediante la Consola de administración de AWS, la AWS CLI o los AWS SDK. En las siguientes secciones, se describe cómo realizar cada operación.

## Agregación o actualización de una anotación
<a name="annotations-managing-add"></a>

Puede agregar una nueva anotación a un objeto o actualizar una anotación existente sustituyendo su carga útil.

### Uso de la consola de S3
<a name="annotations-managing-add-console"></a>

**Agregación de una anotación a un objeto**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En la lista **Buckets** (Buckets), elija el nombre del bucket que contiene el objeto.

1. En la lista **Objetos**, elija el nombre del objeto que desea anotar.

1. Elija la pestaña **Propiedades**.

1. Desplácese hasta la sección **Anotaciones** y elija **Agregar anotación**.

1. En **Nombre**, ingrese un nombre para la anotación (por ejemplo, `ml.sentiment`). Los nombres deben tener entre 1 y 512 bytes y pueden contener letras, dígitos, guiones bajos, puntos y guiones Unicode. Los nombres no pueden comenzar por `aws` ni `s3`.

1. Elija **Elegir archivo** para cargar el contenido de la anotación. El archivo debe ser codificable en UTF-8 y tener un tamaño máximo de 1 MB.

**Completar la anotación**

1. (Opcional) En **Sumas de comprobación**, elija un algoritmo de suma de comprobación.

1. Elija **Agregar anotación**.

**nota**  
Para ver el contenido de una anotación una vez creada, debe descargarla. La consola de S3 no muestra el contenido de las anotaciones insertado.

### Uso de AWS CLI
<a name="annotations-managing-add-cli"></a>

Para agregar o actualizar una anotación en un objeto, utilice el comando `put-object-annotation`. El parámetro `--annotation-payload` acepta una ruta de archivo.

```
aws s3api put-object-annotation \
    --bucket amzn-s3-demo-bucket \
    --key myDocument.pdf \
    --annotation-name "ml.sentiment" \
    --annotation-payload /tmp/sentiment.json
```

Para escribir la anotación solo si el objeto no se ha sobrescrito desde la última vez que lo leyó, especifique el parámetro `--object-if-match` con la ETag actual del objeto.

```
aws s3api put-object-annotation \
    --bucket amzn-s3-demo-bucket \
    --key myDocument.pdf \
    --annotation-name "ml.sentiment" \
    --annotation-payload /tmp/sentiment.json \
    --object-if-match "\"d6eb32081c822ed572b70567826d9d9d\""
```

### Uso de los AWS SDK
<a name="annotations-managing-add-sdk"></a>

En los siguientes ejemplos se utiliza el AWS SDK para Python (Boto3) a fin de agregar una anotación a un objeto.

```
import boto3
import json

s3 = boto3.client('s3')

s3.put_object_annotation(
    Bucket='amzn-s3-demo-bucket',
    Key='myDocument.pdf',
    AnnotationName='ml.sentiment',
    AnnotationPayload=json.dumps({
        'score': 0.95,
        'label': 'positive',
        'model': 'sentiment-v3'
    }).encode('utf-8')
)
```

## Recuperación de anotaciones
<a name="annotations-managing-get"></a>

Puede recuperar una anotación específica o mostrar todas las anotaciones en un objeto.

### Uso de la consola de S3
<a name="annotations-managing-get-console"></a>

**Recuperación de una anotación**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En la lista **Buckets (Buckets)**, elija el nombre del bucket que contiene el objeto.

1. En la lista **Objects (Objetos)**, elija el nombre del objeto.

1. Elija la pestaña **Propiedades** y desplácese hasta la sección **Anotaciones.**

1. Para ver el contenido de la anotación, elija **Descargar** junto al nombre de la anotación.

### Uso de AWS CLI
<a name="annotations-managing-get-cli"></a>

Para recuperar una anotación específica, utilice el comando `get-object-annotation`.

```
aws s3api get-object-annotation \
    --bucket amzn-s3-demo-bucket \
    --key myDocument.pdf \
    --annotation-name "ml.sentiment" \
    output.json
```

Para mostrar todas las anotaciones de un objeto, utilice el comando `list-object-annotations`.

```
aws s3api list-object-annotations \
    --bucket amzn-s3-demo-bucket \
    --key myDocument.pdf
```

### Uso de los AWS SDK
<a name="annotations-managing-get-sdk"></a>

En el ejemplo siguiente, se utiliza el AWS SDK para Python (Boto3) para recuperar y mostrar anotaciones.

```
import boto3
import json

s3 = boto3.client('s3')

# Retrieve a specific annotation
response = s3.get_object_annotation(
    Bucket='amzn-s3-demo-bucket',
    Key='myDocument.pdf',
    AnnotationName='ml.sentiment'
)
content = json.loads(response['AnnotationPayload'].read())

# List all annotations on an object
response = s3.list_object_annotations(
    Bucket='amzn-s3-demo-bucket',
    Key='myDocument.pdf'
)
for annotation in response['Annotations']:
    print(f"{annotation['AnnotationName']} - {annotation['Size']} bytes")
```

## Eliminación de anotaciones
<a name="annotations-managing-delete"></a>

Puede eliminar una anotación específica de un objeto. La eliminación de anotaciones es permanente y no se puede deshacer.

### Uso de la consola de S3
<a name="annotations-managing-delete-console"></a>

**Eliminación de una anotación**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En la lista **Buckets (Buckets)**, elija el nombre del bucket que contiene el objeto.

1. En la lista **Objects (Objetos)**, elija el nombre del objeto.

1. Elija la pestaña **Propiedades** y desplácese hasta la sección **Anotaciones.**

1. Seleccione la anotación que desea eliminar.

1. Elija **Eliminar** y, a continuación, confirme la eliminación.

### Uso de AWS CLI
<a name="annotations-managing-delete-cli"></a>

Para eliminar una anotación específica, utilice el comando `delete-object-annotation`.

```
aws s3api delete-object-annotation \
    --bucket amzn-s3-demo-bucket \
    --key myDocument.pdf \
    --annotation-name "ml.sentiment"
```

### Uso de los AWS SDK
<a name="annotations-managing-delete-sdk"></a>

En el ejemplo siguiente, se utiliza el AWS SDK para Python (Boto3) para eliminar una anotación.

```
import boto3

s3 = boto3.client('s3')

s3.delete_object_annotation(
    Bucket='amzn-s3-demo-bucket',
    Key='myDocument.pdf',
    AnnotationName='ml.sentiment'
)
```