View a markdown version of this page

管理物件標籤 - Amazon Simple Storage Service

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

管理物件標籤

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

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

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

  • 標籤索引鍵的長度上限為 128 個 Unicode 字元,而標籤值的長度上限為 256 個 Unicode 字元。Amazon S3 物件標籤在 UTF-16 內部表示。請注意,在 UTF-16 中,字元佔用 1 或 2 個字元位置。

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

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

對物件新增標籤
  1. 登入 AWS 管理主控台 ,並在 https://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); } } } }