本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理物件標籤
本節說明如何使用適用於 Java 的 AWS SDKs和 .NET 或 Amazon S3 主控台來管理物件標籤。
物件標記可讓您將一般用途儲存貯體中的儲存體分類。每一個標記都是符合以下規則的金鑰對數值:
如需物件標籤的詳細資訊,請參閱 使用標籤分類物件。如需標籤限制的詳細資訊,請參閱《AWS 帳單與成本管理 使用者指南》中的使用者定義的標籤限制。
對物件新增標籤
-
登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/:// 開啟 Amazon S3 主控台。
-
在左側導覽窗格中,選擇一般用途儲存貯體。
-
在儲存貯體清單中,選擇包含物件的儲存貯體名稱。
-
選取您要變更之物件名稱左側的核取方塊。
-
在 Actions (動作) 選單上,選擇 Edit tags (編輯標籤)。
-
檢閱列出的物件,然後選擇 Add tags (新增標籤)。
-
每個物件標籤都是一個鍵值對。輸入 Key (索引鍵) 和 Value (數值)。若要新增其他標籤,選擇 Add Tag (新增標籤)。
一個物件最多可以輸入 10 個標籤。
-
選擇 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);
}
}
}
}