管理物件標籤 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

管理物件標籤

本節說明如何使用適用於 Java 的 AWS SDKs和 .NET 或 Amazon S3 主控台來管理物件標籤。

物件標記可讓您將一般用途儲存貯體中的儲存體分類。每一個標記都是符合以下規則的金鑰對數值:

  • 一個物件最多可以與 10 個標籤相關聯。與物件相關聯的標籤,必須具備唯一的標籤金鑰。

  • 標籤金鑰最長可包含 128 個 Unicode 字元,標籤值最長可包含 256 個 Unicode 字元。Amazon S3 物件標籤在 UTF-16 內部表示。請注意,在 UTF-16 中,字元佔用 1 或 2 個字元位置。

  • 金鑰與值皆會區分大小寫。

如需物件標籤的詳細資訊,請參閱 使用標籤分類物件。如需標籤限制的詳細資訊,請參閱《AWS 帳單與成本管理 使用者指南》中的使用者定義的標籤限制

對物件新增標籤
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/:// 開啟 Amazon S3 主控台。

  2. 在左側導覽窗格中,選擇一般用途儲存貯體

  3. 在儲存貯體清單中,選擇包含物件的儲存貯體名稱。

  4. 選取您要變更之物件名稱左側的核取方塊。

  5. Actions (動作) 選單上,選擇 Edit tags (編輯標籤)

  6. 檢閱列出的物件,然後選擇 Add tags (新增標籤)

  7. 每個物件標籤都是一個鍵值對。輸入 Key (索引鍵)Value (數值)。若要新增其他標籤,選擇 Add Tag (新增標籤)

    一個物件最多可以輸入 10 個標籤。

  8. 選擇 Save changes (儲存變更)。

    Amazon S3 會將標籤新增至指定的物件。

如需詳細資訊,請參閱本指南中的 在 Amazon S3 主控台中檢視物件屬性上傳物件

Java

若要使用適用於 Java 的 AWS 開發套件管理物件標籤,您可以設定新物件的標籤,並擷取或取代現有物件的標籤。如需更多物件標記的詳細資訊,請參閱「使用標籤分類物件」。

使用 S3Client 將物件上傳至儲存貯體並設定索引標籤。如需範例,請參閱《Amazon S3 API 參考》中的將物件上傳至儲存貯體。

.NET

下列範例示範如何使用 適用於 .NET 的 AWS SDK 來設定新物件的標籤,以及擷取或取代現有物件的標籤。如需更多物件標記的詳細資訊,請參閱「使用標籤分類物件」。

如需有關設定和執行程式碼範例的資訊,請參閱《適用於 .NET 的 AWS SDK 開發人員指南》中的適用於 .NET 的 SDK 入門AWS

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); } } } }