Administrar etiquetas de objetos - Amazon Simple Storage Service

Administrar etiquetas de objetos

En esta sección, se explica cómo puede administrar etiquetas de objetos con los SDK de AWS para Java y .NET, o la consola de Amazon S3.

El etiquetado de objetos le permite categorizar el almacenamiento. Cada etiqueta es un par clave-valor que se ajusta a las reglas siguientes:

  • Puede asociar hasta 10 etiquetas a un objeto. Las etiquetas que están asociadas con un objeto deben tener claves de etiquetas exclusivas.

  • Una clave de etiqueta puede tener una longitud de hasta 128 caracteres Unicode y los valores de etiqueta pueden tener una longitud de hasta 256 caracteres Unicode. Las etiquetas de objetos de Amazon S3 se representan internamente en UTF-16. Tenga en cuenta que en UTF-16, los caracteres ocupan 1 o 2 posiciones de caracteres.

  • La clave y los valores distinguen entre mayúsculas y minúsculas.

Para obtener más información acerca de las etiquetas de objeto, consulte Categorización del almacenamiento mediante etiquetas. Para obtener más información sobre las restricciones de las etiquetas, consulte Restricciones de las etiquetas definidas por el usuario en la Guía del usuario de AWS Billing and Cost Management.

Para añadir etiquetas a un objeto
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En la lista Buckets, seleccione el nombre del bucket que contiene los objetos a los que desea agregar etiquetas.

    Si lo desea, también puede ir una carpeta.

  3. En la lista Objects (Objetos), seleccione la casilla de verificación situada junto a los nombres de los objetos a los que desea agregarles etiquetas.

  4. En el menú Actions (Acciones), elija Edit (Editar).

  5. Revise los objetos mencionados y elija Add tags (Agregar etiquetas).

  6. Cada etiqueta de objeto es un par clave-valor. Introduzca la información pertinente en Key (Clave) y Value (Valor). Para agregar otra etiqueta, elija Add Tag (Añadir etiqueta).

    Puede introducir hasta 10 etiquetas para un objeto.

  7. Elija Save changes.

    Amazon S3 agrega las etiquetas a los objetos especificados.

Para obtener más información, consulte Visualización de propiedades de objeto en la consola de Amazon S3 y Carga de objetos en esta guía.

Java

En la siguiente muestra se indica cómo utilizar el AWS SDK for Java para establecer etiquetas para un nuevo objeto y recuperar o reemplazar etiquetas de un objeto ya existente. Para obtener más información acerca de cómo etiquetar objetos, consulte Categorización del almacenamiento mediante etiquetas. Para obtener instrucciones sobre la creación y comprobación de una muestra funcional, consulte Prueba de los ejemplos de código de Java de Amazon S3.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.*; import java.io.File; import java.util.ArrayList; import java.util.List; public class ManagingObjectTags { public static void main(String[] args) { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; String keyName = "*** Object key ***"; String filePath = "*** File path ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); // Create an object, add two new tags, and upload the object to Amazon S3. PutObjectRequest putRequest = new PutObjectRequest(bucketName, keyName, new File(filePath)); List<Tag> tags = new ArrayList<Tag>(); tags.add(new Tag("Tag 1", "This is tag 1")); tags.add(new Tag("Tag 2", "This is tag 2")); putRequest.setTagging(new ObjectTagging(tags)); PutObjectResult putResult = s3Client.putObject(putRequest); // Retrieve the object's tags. GetObjectTaggingRequest getTaggingRequest = new GetObjectTaggingRequest(bucketName, keyName); GetObjectTaggingResult getTagsResult = s3Client.getObjectTagging(getTaggingRequest); // Replace the object's tags with two new tags. List<Tag> newTags = new ArrayList<Tag>(); newTags.add(new Tag("Tag 3", "This is tag 3")); newTags.add(new Tag("Tag 4", "This is tag 4")); s3Client.setObjectTagging(new SetObjectTaggingRequest(bucketName, keyName, new ObjectTagging(newTags))); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
.NET

En la siguiente muestra se indica cómo utilizar el AWS SDK for .NET para establecer las etiquetas para un nuevo objeto y recuperar o reemplazar las etiquetas de un objeto ya existente. Para obtener más información acerca de cómo etiquetar objetos, consulte Categorización del almacenamiento mediante etiquetas.

Para obtener instrucciones acerca de cómo crear y probar una muestra funcional, consulte Ejecución de ejemplos de código .NET de Amazon S3.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { public class ObjectTagsTest { private const string bucketName = "*** bucket name ***"; private const string keyName = "*** key name for the new object ***"; private const string filePath = @"*** file path ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 client; public static void Main() { client = new AmazonS3Client(bucketRegion); PutObjectWithTagsTestAsync().Wait(); } static async Task PutObjectWithTagsTestAsync() { try { // 1. Put an object with tags. var putRequest = new PutObjectRequest { BucketName = bucketName, Key = keyName, FilePath = filePath, TagSet = new List<Tag>{ new Tag { Key = "Keyx1", Value = "Value1"}, new Tag { Key = "Keyx2", Value = "Value2" } } }; PutObjectResponse response = await client.PutObjectAsync(putRequest); // 2. Retrieve the object's tags. GetObjectTaggingRequest getTagsRequest = new GetObjectTaggingRequest { BucketName = bucketName, Key = keyName }; GetObjectTaggingResponse objectTags = await client.GetObjectTaggingAsync(getTagsRequest); for (int i = 0; i < objectTags.Tagging.Count; i++) Console.WriteLine("Key: {0}, Value: {1}", objectTags.Tagging[i].Key, objectTags.Tagging[i].Value); // 3. Replace the tagset. Tagging newTagSet = new Tagging(); newTagSet.TagSet = new List<Tag>{ new Tag { Key = "Key3", Value = "Value3"}, new Tag { Key = "Key4", Value = "Value4" } }; PutObjectTaggingRequest putObjTagsRequest = new PutObjectTaggingRequest() { BucketName = bucketName, Key = keyName, Tagging = newTagSet }; PutObjectTaggingResponse response2 = await client.PutObjectTaggingAsync(putObjTagsRequest); // 4. Retrieve the object's tags. GetObjectTaggingRequest getTagsRequest2 = new GetObjectTaggingRequest(); getTagsRequest2.BucketName = bucketName; getTagsRequest2.Key = keyName; GetObjectTaggingResponse objectTags2 = await client.GetObjectTaggingAsync(getTagsRequest2); for (int i = 0; i < objectTags2.Tagging.Count; i++) Console.WriteLine("Key: {0}, Value: {1}", objectTags2.Tagging[i].Key, objectTags2.Tagging[i].Value); } catch (AmazonS3Exception e) { Console.WriteLine( "Error encountered ***. Message:'{0}' when writing an object" , e.Message); } catch (Exception e) { Console.WriteLine( "Encountered an error. Message:'{0}' when writing an object" , e.Message); } } } }