객체 태그 관리

객체 태그 관리 (Managing object tags)

이 절에서는 AWS SDK for Java와 .NET 또는 Amazon S3 콘솔을 사용해 객체 태그를 관리하는 방법을 설명할게요.

출처: 문서

본문

객체 태깅은 범용 버킷(general purpose buckets)에서 스토리지를 분류하는 방법을 제공해요. 각 태그는 다음 규칙을 따르는 키-값 쌍이에요.

  • 객체 하나에 최대 10개 태그를 연결할 수 있어요. 객체에 연결되는 태그는 태그 키가 서로 달라야 해요.
  • 태그 키는 최대 128자(유니코드), 태그 값은 최대 256자(유니코드)까지 사용할 수 있어요. Amazon S3 객체 태그는 내부적으로 UTF-16으로 표현되는데, UTF-16에서는 각 문자가 1개 또는 2개의 문자 위치를 차지한다는 점을 기억해 두세요.
  • 키와 값은 대소문자를 구분해요.

객체 태그에 대한 자세한 내용은 객체 태깅을 참고하세요. 태그 제한에 대한 자세한 내용은 AWS Billing and Cost Management 사용자 가이드의 사용자 정의 태그 제한을 참고하세요.

객체에 태그 추가하기 (To add tags to an object)

  • AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.
  • 왼쪽 탐색 창에서 **범용 버킷(General purpose buckets)**을 선택해요.
  • 버킷 목록에서 객체가 들어 있는 버킷 이름을 선택해요.
  • 변경할 객체 이름 왼쪽에 있는 확인란을 선택해요.
  • 작업(Actions) 메뉴에서 **태그 편집(Edit tags)**을 선택해요.
  • 나열된 객체를 검토하고 **태그 추가(Add tags)**를 선택해요.
  • 각 객체 태그는 키-값 쌍이에요. **키(Key)**와 **값(Value)**을 입력해요. 태그를 더 추가하려면 **태그 추가(Add Tag)**를 선택해요. 객체 하나에 최대 10개까지 태그를 입력할 수 있어요.
  • **변경 사항 저장(Save changes)**을 선택해요.

Amazon S3가 지정된 객체에 태그를 추가해요.

자세한 내용은 Amazon S3 콘솔에서 객체 속성 보기와 이 가이드의 객체 업로드를 함께 참고하세요.

Java | .NET

AWS SDK for Java를 사용해 객체 태그를 관리하려면 새 객체에 태그를 설정하고 기존 객체의 태그를 검색하거나 교체할 수 있어요. 객체 태깅에 대한 자세한 내용은 객체 태깅을 참고하세요.

S3Client를 사용해 객체를 버킷에 업로드하고 태그를 설정할 수 있어요. 예시는 Amazon S3 API Reference의 버킷에 객체 업로드를 참고하세요.

다음 예시는 AWS SDK for .NET을 사용해 새 객체의 태그를 설정하고 기존 객체의 태그를 검색하거나 교체하는 방법을 보여줘요. 객체 태깅에 대한 자세한 내용은 객체 태깅을 참고하세요.

코드 예시를 설정하고 실행하는 방법에 대한 자세한 내용은 AWS SDK for .NET 개발자 가이드의 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);
            }
        }
    }
}

더 알아보기 (Learn more)