Gestion des balises d'objets - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion des balises d'objets

Cette section explique comment gérer les balises d'objet à l'aide des kits SDK AWS pour Java et .NET ou de la console Amazon S3.

Le balisage des objets vous permet de classer le stockage par catégorie. Chaque balise est une paire clé-valeur qui respecte les règles suivantes :

  • Vous pouvez associer jusqu'à 10 balises à un objet. Les balises associées à un objet doivent avoir des clés de balise uniques.

  • Une clé d'étiquette peut comporter jusqu'à 128 caractères Unicode et les valeurs d'étiquette peuvent comporter jusqu'à 256 caractères Unicode. Les balises d'objet Amazon S3 sont représentées en interne en UTF-16. Notez qu'en UTF-16, les caractères occupent une ou deux positions de caractère.

  • La clé et les valeurs sont sensibles à la casse.

Pour en savoir plus sur les balises d’objet, consultez Catégorisation de votre stockage à l'aide de balises. Pour de plus amples informations sur les restrictions liées aux balises, consultez Restrictions encadrant les balises définies par l'utilisateur dans le Guide de l’utilisateur AWS Billing and Cost Management.

Pour ajouter des balises à un objet
  1. Connectez-vous à AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la liste Compartiments, choisissez le nom du compartiment qui contient les objets auxquels vous souhaitez ajouter des balises.

    Vous pouvez également naviguer vers un dossier si vous le souhaitez.

  3. Dans la liste Objets, cochez la case à côté des noms des objets auxquels vous souhaitez ajouter des balises.

  4. Dans le menu Actions, choisissez Modifier les balises.

  5. Vérifiez les objets répertoriés et choisissez Ajouter des balises.

  6. Chaque balise d'objet est une paire clé-valeur. Saisissez une Key (Clé) et une Value (Valeur). Choisissez Add Tag (Ajouter une balise) pour ajouter une autre balise.

    Vous pouvez entrer jusqu'à 10 balises pour un objet.

  7. Sélectionnez Enregistrer les modifications.

    Amazon S3 ajoute les balises aux objets spécifiés.

Pour de plus amples informations, veuillez consulter aussi Affichage des propriétés d'un objet dans la console Amazon S3 et Chargement d'objets dans ce guide.

Java

L'exemple suivant montre comment utiliser le kit AWS SDK for Java pour définir des balises pour un nouvel objet et récupérer ou remplacer des balises pour un objet existant. Pour plus d'informations sur le balisage des objets, consultez Catégorisation de votre stockage à l'aide de balises. Pour obtenir les instructions sur la création et le test d'un exemple pratique, consultez Test des exemples de code Java 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

L'exemple suivant montre comment utiliser le kit AWS SDK for .NET pour définir les balises pour un nouvel objet, et récupérer ou remplacer les balises pour un objet existant. Pour plus d'informations sur le balisage des objets, consultez Catégorisation de votre stockage à l'aide de balises.

Pour obtenir des instructions sur la façon de créer et de tester un exemple pratique, consultez Exécution des exemples de code .NET 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); } } } }