Gerenciar tags de objeto
Esta seção explica como você pode gerenciar tags de objeto usando os AWS SDKs for Java e .NET ou o console do Amazon S3.
A marcação de objetos é uma forma de categorizar o armazenamento nos buckets de uso geral. Cada tag é um par de valores chave que segue as regras a seguir:
-
Você pode associar até 10 tags a um objeto. As tags associadas a um objeto devem ter chaves de tag exclusivas.
-
Um chave de tag pode ter até 128 caracteres Unicode e os valores de tag podem ter até 256 caracteres Unicode. As tags de objeto do Amazon S3 são representadas internamente em UTF-16. Observe que, em UTF-16, os caracteres utilizam posições de um ou de dois caracteres.
-
As chaves e os valores diferenciam letras maiúsculas de minúsculas.
Para obter mais informações sobre tags de objeto, consulte Categorizar objetos usando tags. Para obter mais informações sobre restrições de tags, consulte Restrições de tags definidas pelo usuário no Manual do usuário do Gerenciamento de Faturamento e Custos da AWS.
Para adicionar tags a um objeto
-
Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.
-
No painel de navegação à esquerda, escolha Buckets de uso geral.
-
Na lista de buckets, escolha o nome do bucket que contém o objeto.
-
Marque a caixa de seleção à esquerda dos nomes dos objetos que você quer alterar.
-
No menu Actions (Ações), escolha Edit (Editar).
-
Revise os objetos listados e escolha Add tags (Adicionar tags).
-
Cada tag de objeto é um par de chave-valor. Insira uma Key (Chave) e um Value (Valor). Para adicionar outra tag, escolha Add Tag (Adicionar tag).
Você pode digitar até 10 tags para um objeto.
-
Selecione Save changes.
O Amazon S3 adiciona as tags aos objetos especificados.
Para obter mais informações, consulte também Exibir propriedades do objeto no console do Amazon S3 e Fazer upload de objetos neste guia.
- Java
-
Para gerenciar tags de objeto usando o AWS SDK para Java, você pode definir tags para um novo objeto e recuperar ou substituir tags referentes a um objeto existente. Para obter mais informações sobre marcação de objetos, consulte Categorizar objetos usando tags.
Faça upload de um objeto em um bucket e defina etiquetas usando um S3Client. Para ver exemplos, consulte Upload an object to a bucket na Referência de API do Amazon S3.
- .NET
-
O exemplo a seguir mostra como usar o AWS SDK para .NET para definir as tags para um objeto novo e recuperar ou substituir as tags para um objeto existente. Para obter mais informações sobre marcação de objetos, consulte Categorizar objetos usando tags.
Para obter informações sobre como configurar e executar exemplos de código, consulte Conceitos básicos do AWS SDK for .NET no Guia do desenvolvedor do AWS SDK for .NET.
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);
}
}
}
}