[Документация Yandex Cloud](../../../index.md) > [Yandex Object Storage](../../index.md) > [Пошаговые инструкции](../index.md) > Объекты > Управление метками объекта

# Управление метками объекта

[Метки объектов](../../concepts/tags.md) — это пары ключ-значение для логической маркировки объектов.

{% note info %}

В терминологии Yandex Cloud для логической маркировки ресурсов используется понятие _метка_ (_label_). Object Storage поддерживает совместимость с [Amazon S3 API](https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html), поэтому в командах для [AWS CLI](../../tools/aws-cli.md) и в параметрах [API](../../s3/index.md) применяется термин AWS — _тег_ (_tag_).

{% endnote %}

## Добавить или изменить метки {#add-edit-tag}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог.
  1. Перейдите в сервис **Object Storage**.
  1. Выберите нужный бакет из списка.
  1. На панели слева выберите ![image](../../../_assets/console-icons/folder-tree.svg) **Объекты**.
  1. Нажмите на имя нужного объекта.
  1. Нажмите на кнопку **Добавить метку**.
  1. Через двоеточие введите ключ и значение метки (ключ:значение).

  Если вы хотите изменить метку:
  
  1. Нажмите на кнопку **Добавить метку**.
  1. Введите ключ метки, которую вы хотите изменить, и новое значение.

- Yandex Cloud CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды CLI для изменения меток объекта в бакете:

      ```bash
      yc storage s3api put-object-tagging --help
      ```

  1. Получите список бакетов в каталоге по умолчанию:

      ```bash
      yc storage bucket list
      ```

      Результат:

      ```text
      +------------------+----------------------+-------------+-----------------------+---------------------+
      |       NAME       |      FOLDER ID       | MAX SIZE    | DEFAULT STORAGE CLASS |     CREATED AT      |
      +------------------+----------------------+-------------+-----------------------+---------------------+
      | my-bucket        | b1g5dk66rc1u******** | 53687091200 | STANDARD              | 2024-12-17 07:17:04 |
      +------------------+----------------------+-------------+-----------------------+---------------------+
      ```

  1. В терминале выполните команду, которая перезаписывает все имеющиеся у объекта метки:

      ```bash
      yc storage s3api put-object-tagging \
        --bucket <имя_бакета> \
        --key <ключ_объекта> \
        --version-id <идентификатор_версии> \
        --tagging TagSet=[{Key=<ключ_метки>,Value=<значение_метки>},{Key=<ключ_метки>,Value=<значение_метки>}]
      ```

      Где:
      * `--bucket` — имя бакета.
      * `--key` — [ключ](../../concepts/object.md#key) объекта в бакете.
      * `--version-id` — [версия](../../concepts/versioning.md) объекта. Необязательный параметр.
      * `--tagging` — массив меток объекта, где:
        * `Key` — ключ метки, тип: `string`.
        * `Value` — значение метки, тип: `string`.

      Результат:

      ```text
      request_id: ac9066e5********
      ```

- AWS CLI {#aws-cli}

  Если у вас еще нет интерфейса командной строки AWS CLI, [установите и сконфигурируйте его](../../tools/aws-cli.md).

  В терминале выполните команду, которая перезаписывает все имеющиеся у объекта метки:

  ```bash
  aws s3api put-object-tagging \
    --bucket <имя_бакета> \
    --key <ключ_объекта> \
    --tagging 'TagSet=[{Key=<ключ_метки>,Value=<значение_метки>},{Key=<ключ_метки>,Value=<значение_метки>}]' \
    --endpoint-url=https://storage.yandexcloud.kz
  ```

  Где:
  * `--bucket` — имя бакета.
  * `--key` — [ключ](../../concepts/object.md#key) объекта в бакете.
  * `--tagging` — массив меток объекта, где:
    * `Key` — ключ метки, тип: `string`.
    * `Value` — значение метки, тип: `string`.
  * `--endpoint-url` — эндпоинт Object Storage.

- Terraform {#tf}

  {% note info %}
  
  Если вы работаете с Object Storage через Terraform от имени [сервисного аккаунта](../../../iam/concepts/users/service-accounts.md), [назначьте](../../../iam/operations/sa/assign-role-for-sa.md) сервисному аккаунту нужную [роль](../../security/index.md#roles-list), например `storage.admin`, на каталог, в котором будут создаваться ресурсы.
  
  {% endnote %}

  Если у вас еще нет Terraform, [установите его и настройте провайдер Yandex Cloud](../../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
  
  
  Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, [аутентифицируйтесь](../../../terraform/authentication.md) соответствующим способом.

  
  {% note warning %}
  
  Для корректной работы Terraform в [регионе Казахстан](../../../overview/concepts/region.md) укажите в конфигурационном файле Terraform в блоке `provider` эндпоинты API Yandex Cloud и Object Storage: 
  
  ```hcl
  provider "yandex" {
    zone             = "kz1-a"
    endpoint         = "api.yandexcloud.kz:443"
    storage_endpoint = "https://storage.yandexcloud.kz"
  }
  ```
  
  Подробнее о настройках провайдера в разделе [Настройте провайдер](../../../tutorials/infrastructure-management/terraform-quickstart.md#configure-provider).
  
  {% endnote %}


  1. Откройте файл конфигурации Terraform и добавьте блок `tags` во фрагмент с описанием объекта:

      ```hcl
      resource "yandex_storage_object" "test-object" {
        access_key       = "<идентификатор_статического_ключа>"
        secret_key       = "<секретный_ключ>"
        bucket           = "<имя_бакета>"
        key              = "<имя_объекта>"
        source           = "<путь_к_файлу>"
        tags             = {
          <ключ_метки_1> = "<значение_метки_1>"
          <ключ_метки_2> = "<значение_метки_2>"
        }
      }
      ```

      Где `tags` — массив меток объекта в формате `<ключ> = "<значение>"`.
      
      Более подробная информация о параметрах ресурса `yandex_storage_object` в Terraform приведена в [документации провайдера](../../../terraform/resources/storage_object.md).

  1. Примените изменения:

      1. В терминале перейдите в директорию с конфигурационным файлом.
      1. Проверьте корректность конфигурации с помощью команды:
      
         ```bash
         terraform validate
         ```
      
         Если конфигурация является корректной, появится сообщение:
      
         ```bash
         Success! The configuration is valid.
         ```
      
      1. Выполните команду:
      
         ```bash
         terraform plan
         ```
      
         В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
      1. Примените изменения конфигурации:
      
         ```bash
         terraform apply
         ```
      
      1. Подтвердите изменения: введите в терминале слово `yes` и нажмите **Enter**.

  После этого к объекту будут добавлены метки. Проверить появление меток и настройки объекта можно с помощью [AWS CLI или S3 API](#get-tag).

- API {#api}

  Чтобы добавить или изменить метки объекта, воспользуйтесь методом S3 API [putObjectTagging](../../s3/api-ref/object/putobjecttagging.md).

{% endlist %}

## Посмотреть метки {#get-tag}

{% list tabs group=instructions %}

- Консоль управления {#console}

  Вы можете посмотреть метки в списке объектов бакета и на странице отдельного объекта.

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог.
  1. Перейдите в сервис **Object Storage**.
  1. Выберите нужный бакет из списка.
  1. На панели слева выберите ![image](../../../_assets/console-icons/folder-tree.svg) **Объекты**.
  1. Нажмите на имя нужного объекта.


- Yandex Cloud CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды CLI для просмотра меток объекта в бакете:

      ```bash
      yc storage s3api get-object-tagging --help
      ```

  1. Получите список бакетов в каталоге по умолчанию:

      ```bash
      yc storage bucket list
      ```

      Результат:

      ```text
      +------------------+----------------------+-------------+-----------------------+---------------------+
      |       NAME       |      FOLDER ID       | MAX SIZE    | DEFAULT STORAGE CLASS |     CREATED AT      |
      +------------------+----------------------+-------------+-----------------------+---------------------+
      | my-bucket        | b1g5dk66rc1u******** | 53687091200 | STANDARD              | 2024-12-17 07:17:04 |
      +------------------+----------------------+-------------+-----------------------+---------------------+
      ```

  1. Получите информацию о метках объекта:

      ```bash
      yc storage s3api get-object-tagging \
        --bucket <имя_бакета> \
        --key <ключ_объекта> \
        --version-id <идентификатор_версии>
      ```

      Где:
      * `--bucket` — имя бакета.
      * `--key` — [ключ](../../concepts/object.md#key) объекта в бакете.
      * `--version-id` — [версия](../../concepts/versioning.md) объекта. Необязательный параметр.

      Результат:

      ```text
      request_id: 2defc7b2********
      tag_set:
        - key: key-for-my-object-2
          value: second-value
        - key: key-for-my-object-1
          value: first-value
      ```

- AWS CLI {#aws-cli}

  Если у вас еще нет интерфейса командной строки AWS CLI, [установите и сконфигурируйте его](../../tools/aws-cli.md).

  В терминале выполните команду:

  ```bash
  aws s3api get-object-tagging \
    --bucket <имя_бакета> \
    --key <ключ_объекта> \
    --endpoint-url=https://storage.yandexcloud.kz
  ```

  Где:
  * `--bucket` — имя бакета.
  * `--key` — [ключ](../../concepts/object.md#key) объекта в бакете.
  * `--endpoint-url` — эндпоинт Object Storage.

  Результат:

  ```json
  {
      "TagSet": [
          {
              "Key": "test-key-1",
              "Value": "test-value-1"
          },
          {
              "Key": "test-key-2",
              "Value": "test-value-2"
          }
      ]
  }
  ```

- API {#api}

  Чтобы посмотреть метки объекта, воспользуйтесь методом S3 API [getObjectTagging](../../s3/api-ref/object/getobjecttagging.md).

{% endlist %}

## Удалить метки {#delete-tag}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог.
  1. Перейдите в сервис **Object Storage**.
  1. Выберите нужный бакет из списка.
  1. На панели слева выберите ![image](../../../_assets/console-icons/folder-tree.svg) **Объекты**.
  1. Нажмите на имя нужного объекта.
  1. Нажмите на крестик рядом с меткой, которую вы хотите удалить.

- Yandex Cloud CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды CLI для удаления меток объекта в бакете:

      ```bash
      yc storage s3api delete-object-tagging --help
      ```

  1. Получите список бакетов в каталоге по умолчанию:

      ```bash
      yc storage bucket list
      ```

      Результат:

      ```text
      +------------------+----------------------+-------------+-----------------------+---------------------+
      |       NAME       |      FOLDER ID       | MAX SIZE    | DEFAULT STORAGE CLASS |     CREATED AT      |
      +------------------+----------------------+-------------+-----------------------+---------------------+
      | my-bucket        | b1g5dk66rc1u******** | 53687091200 | STANDARD              | 2024-12-17 07:17:04 |
      +------------------+----------------------+-------------+-----------------------+---------------------+
      ```

  1. Удалите метки объекта в бакете:

      ```bash
      yc storage s3api delete-object-tagging \
        --bucket <имя_бакета> \
        --key <ключ_объекта> \
        --version-id <идентификатор_версии>
      ```

      Где:
      * `--bucket` — имя бакета.
      * `--key` — [ключ](../../concepts/object.md#key) объекта в бакете.
      * `--version-id` — [версия](../../concepts/versioning.md) объекта. Необязательный параметр.

      Результат:

      ```text
      request_id: 1131dfc4********
      ```

- AWS CLI {#aws-cli}

  Если у вас еще нет интерфейса командной строки AWS CLI, [установите и сконфигурируйте его](../../tools/aws-cli.md).

  В терминале выполните команду:

  ```bash
  aws s3api delete-object-tagging \
    --bucket <имя_бакета> \
    --key <ключ_объекта> \
    --endpoint-url=https://storage.yandexcloud.kz
  ```

  Где:
  * `--bucket` — имя бакета.
  * `--key` — [ключ](../../concepts/object.md#key) объекта в бакете.
  * `--endpoint-url` — эндпоинт Object Storage.

- Terraform {#tf}

  Если у вас еще нет Terraform, [установите его и настройте провайдер Yandex Cloud](../../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
  
  
  Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, [аутентифицируйтесь](../../../terraform/authentication.md) соответствующим способом.

  1. Откройте файл конфигураций Terraform и удалите блок `tags` из фрагмента с описанием объекта.

     {% cut "Пример описания тегов объекта в конфигурации Terraform" %}

     ```hcl
      resource "yandex_storage_object" "test-object" {
        ...
        tags             = {
          <ключ_метки_1> = "<значение_метки_1>"
          <ключ_метки_2> = "<значение_метки_2>"
        }
      }
     ...
     ```

     {% endcut %}

  1. Примените изменения:

      1. В терминале перейдите в директорию с конфигурационным файлом.
      1. Проверьте корректность конфигурации с помощью команды:
      
         ```bash
         terraform validate
         ```
      
         Если конфигурация является корректной, появится сообщение:
      
         ```bash
         Success! The configuration is valid.
         ```
      
      1. Выполните команду:
      
         ```bash
         terraform plan
         ```
      
         В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
      1. Примените изменения конфигурации:
      
         ```bash
         terraform apply
         ```
      
      1. Подтвердите изменения: введите в терминале слово `yes` и нажмите **Enter**.

  После этого у объекта будут удалены метки. Проверить удаление меток и настройки объекта можно с помощью [AWS CLI или S3 API](#get-tag).

- API {#api}

  Чтобы удалить метки объекта, воспользуйтесь методом S3 API [deleteObjectTagging](../../s3/api-ref/object/deleteobjecttagging.md).

{% endlist %}