Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
管理对象标签
本节介绍如何使用适用于 Java 和 .NET 的 Amazon 开发工具包或 Amazon S3 控制台管理对象标签。
对象标签为您提供了对通用存储桶中的存储进行分类的方法。每个标签都是遵循以下规则的键值对:
有关对象标签的更多信息,请参阅 使用标签对对象进行分类。有关标签限制的更多信息,请参阅《Amazon 账单与成本管理 用户指南》中的用户定义的标签限制。
向对象添加标签
-
登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/。
-
在左侧导航窗格中,选择通用存储桶。
-
在存储桶列表中,选择包含对象的存储桶的名称。
-
选中待更改对象的名称左侧的复选框。
-
在操作菜单上选择编辑标签。
-
查看列出的对象,然后选择添加标签。
-
每个对象标签都是一个键值对。输入 Key (键) 和 Value (值)。要添加另一个标签,请选择 Add Tag (添加标签)。
您最多可以为一个对象输入 10 个标签。
-
选择保存更改。
Amazon S3 会将标签添加给指定对象。
有关更多信息,另请参阅本指南中的 在 Amazon S3 控制台中查看对象属性 和 上传对象。
- Java
-
要使用适用于 Java 的 Amazon SDK 管理对象标签,可以为新对象设置标签,并检索或替换现有对象的标签。有关对象标签的更多信息,请参阅使用标签对对象进行分类。
使用 S3Client 将对象上传到存储桶并设置标签。有关示例,请参阅《Amazon S3 API Reference》中的 Upload an object to a bucket。
- .NET
-
以下示例演示如何使用适用于 .NET 的 Amazon SDK为新对象设置标签并检索或替换现有对象的标签。有关对象标签的更多信息,请参阅使用标签对对象进行分类。
有关设置和运行代码示例的信息,请参阅《适用于 .NET 的 Amazon SDK 开发人员指南》中的适用于 .NET 的 Amazon SDK 入门。
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);
}
}
}
}