С помощью тегов можно систематизировать и классифицировать бакеты. Теги имеют формат “ключ — значение”.
Теги могут потребоваться:
если в бакетах хранятся данные разных подразделений организации — например, documents:hr;
если бакеты используются для хранения конфиденциальных данных — например, access:restricted;
если в бакетах хранятся данные для тестового и продуктивного окружений — например, environment:prod.
Использование тегов упрощает массовые операции с бакетами: например, для бакетов с конфиденциальными данными, помеченных соответствующими тегами, можно установить строгие ограничения доступа.
Бакету можно назначить теги как при создании, так и в любой момент после создания.
Бакету можно назначить до 50 тегов.
В ключах и значениях тегов можно использовать буквы латинского и русского алфавитов, цифры, пробелы и символы - = . _ : / @.
Длина ключа не может превышать 128 символов, длина значения — 256 символов.
Ключи тегов должны быть уникальными для каждого бакета. Невозможно назначить два тега с одинаковым ключом одному бакету.
Веб-консоль AWS CLI Python Go
В веб-консоли выберите нужный проект.
В списке сервисов выберите Object Storage .
Нажмите на имя нужного бакета и перейдите на вкладку Конфигурация .
Если у бакета есть теги, они будут отображены на вкладке.
aws s3api get-bucket-tagging --bucket <имя бакета>
Приведенный код на Python:
Импортирует библиотеку boto3 — официальный AWS SDK для Python.
Создает сессию с использованием профиля по умолчанию, который хранится в файле ~/.aws/credentials.
Создает клиент для подключения к Object Storage.
Выполняет запрос на получение списка тегов, которые назначены бакету.
Выводит список тегов.
session = boto3.session. Session ( profile_name = ' default ' )
endpoint_url = ' https://storage.mwsapis.ru/ '
response = s3. get_bucket_tagging (
Приведенный код на Go:
Импортирует необходимые пакеты, в том числе AWS SDK для Go.
Получает из аргумента командной строки имя бакета, для которого нужно вывести список тегов.
Подгружает конфигурацию из файлов ~/.aws/*.
Создает клиент для доступа к Object Storage.
Получает список тегов, назначенных указанному бакету.
Выводит имя бакета и список назначенных ему тегов.
" github.com/aws/aws-sdk-go-v2/aws "
" github.com/aws/aws-sdk-go-v2/config "
" github.com/aws/aws-sdk-go-v2/service/s3 "
// Получаем имя бакета из аргумента командной строки
bucketName := flag . String ( " b " , "" , " The name of the bucket " )
fmt . Println ( " You must supply the name of a bucket (-b BUCKET) " )
// Подгружаем конфигурацию из ~/.aws/*
cfg , err := config . LoadDefaultConfig ( context . TODO ())
// Создаем клиент для доступа к ObjectStorage
client := s3 . NewFromConfig ( cfg )
result , err := client . GetBucketTagging ( context . TODO (), & s3.GetBucketTaggingInput{
Bucket : aws . String ( * bucketName ),
log . Printf ( " Bucket %s is tagged with: " , * bucketName )
for _ , tag := range result . TagSet {
log . Printf ( " \t %s : %s " , * tag . Key , * tag . Value )
Веб-консоль AWS CLI Python Go
В
веб-консоли выберите нужный проект.
В списке сервисов выберите Object Storage .
Нажмите на имя нужного бакета и перейдите на вкладку Конфигурация .
Нажмите на значок редактирования в разделе Теги .
Нажмите Добавить тег .
Введите ключи и значения для новых тегов.
Нажмите кнопку Cохранить .
aws s3api put-bucket-tagging --bucket <имя бакета> --tagging TagSet= ' [{Key=key1,Value=valuе1},{Key=key2,Value=value2}] '
Приведенный код на Python:
Импортирует библиотеку boto3 — официальный AWS SDK для Python.
Создает сессию с использованием профиля по умолчанию, который хранится в файле ~/.aws/credentials .
Создает клиент для подключения к Object Storage.
Вызывает метод put_bucket_tagging, чтобы назначить теги указанному бакету. Bucket='bucket' указывает имя бакета, к которому применяются теги. Tagging={'TagSet': [...]} содержит список словарей, где каждый словарь представляет отдельный тег. Каждый тег состоит из ключа ('Key') и значения ('Value').
Сохраняет ответ от вызова метода put_bucket_tagging в переменной response.
Выводит содержимое переменной response, которая содержит информацию об успешном добавлении тегов.
session = boto3.session. Session ( profile_name = ' default ' )
endpoint_url = ' https://storage.mwsapis.ru/ '
response = s3. put_bucket_tagging (
Приведенный код на Go:
Импортирует необходимые пакеты, в том числе AWS SDK для Go.
Получает из аргумента командной строки имя бакета, которому нужно назначить теги.
Подгружает конфигурацию из файлов ~/.aws/*.
Создает клиент для доступа к Object Storage.
Определяет новые теги для добавления в виде среза []types.Tag.
Добавляет теги.
Выводит сообщение о добавлении тегов указанном бакету.
" github.com/aws/aws-sdk-go-v2/aws "
" github.com/aws/aws-sdk-go-v2/config "
" github.com/aws/aws-sdk-go-v2/service/s3 "
" github.com/aws/aws-sdk-go-v2/service/s3/types "
// Получаем имя бакета из аргумента командной строки
bucketName := flag . String ( " b " , "" , " The name of the bucket " )
fmt . Println ( " You must supply the name of a bucket (-b BUCKET) " )
// Подгружаем конфигурацию из ~/.aws/*
cfg , err := config . LoadDefaultConfig ( context . TODO ())
// Создаем клиент для доступа к Object Storage
client := s3 . NewFromConfig ( cfg )
// Определяем новые теги для добавления
Value : aws . String ( " Value1 " ),
Value : aws . String ( " Value2 " ),
_ , err = client . PutBucketTagging ( context . TODO (), & s3.PutBucketTaggingInput{
Bucket : aws . String ( * bucketName ),
log . Printf ( " New tags added to bucket %s " , * bucketName )
Веб-консоль AWS CLI Python Go
В
веб-консоли выберите нужный проект.
В списке сервисов выберите Object Storage .
Нажмите на имя бакета, теги которого нужно удалить, и перейдите на вкладку Конфигурация .
Нажмите на значок редактирования в разделе Теги .
Нажмите на значок удаления для каждого удаляемого тега.
Нажмите кнопку Сохранить .
aws s3api delete-bucket-tagging --bucket <имя_бакета>
Приведенный код на Python:
Импортирует библиотеку boto3 — официальный AWS SDK для Python.
Создает сессию с использованием профиля по умолчанию, который хранится в файле ~/.aws/credentials.
Создает клиент с использованием для подключения к Object Storage.
Вызывает метод delete_bucket_tagging, которые удаляет теги указанного бакета.
Сохраняет ответ от вызова метода delete_bucket_tagging в переменной response.
Выводит содержимое переменной response, которая содержит информацию об успешном удалении тегов.
session = boto3.session. Session ( profile_name = ' default ' )
endpoint_url = ' https://storage.mwsapis.ru/ '
response = s3. delete_bucket_tagging (
Приведенный код на Go:
Импортирует необходимые пакеты, в том числе AWS SDK для Go.
Получает из командной строки имя бакета, для которого нужно удалить теги.
Подгружает конфигурацию из файлов ~/.aws/*.
Создает клиент для доступа к Object Storage.
Удаляет все теги для указанного бакета.
Выводит сообщение об удалении тегов.
" github.com/aws/aws-sdk-go-v2/aws "
" github.com/aws/aws-sdk-go-v2/config "
" github.com/aws/aws-sdk-go-v2/service/s3 "
// Получаем имя бакета из аргумента командной строки
bucketName := flag . String ( " b " , "" , " The name of the bucket " )
fmt . Println ( " You must supply the name of a bucket (-b BUCKET) " )
// Подгружаем конфигурацию из ~/.aws/*
cfg , err := config . LoadDefaultConfig ( context . TODO ())
// Создаем клиент для доступа к Object Storage
client := s3 . NewFromConfig ( cfg )
_ , err = client . DeleteBucketTagging ( context . TODO (), & s3.DeleteBucketTaggingInput{
Bucket : aws . String ( * bucketName ),
log . Printf ( " Tags for the bucket %s have been deleted: " , * bucketName )