Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Object Storage
    • Все инструкции
      • Загрузка объекта
      • Составная загрузка объекта
      • Получение списка объектов в бакете
      • Получение информации об объекте
      • Скачивание объекта
      • Восстановление версии объекта
      • Переименование и перемещение объекта
      • Копирование объектов
      • Получение публичной ссылки на объект
      • Настройка блокировок версии объекта
      • Удаление объекта
      • Удаление всех объектов
      • Удаление частично загруженного объекта
      • Редактирование ACL объекта
      • Управление метками объекта
      • Управление пользовательскими метаданными объекта
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Копирование одного объекта
  • Копирование всех объектов бакета в другой бакет
  1. Пошаговые инструкции
  2. Объекты
  3. Копирование объектов

Копирование объектов

Статья создана
Yandex Cloud
Улучшена
Обновлена 5 мая 2025 г.
  • Копирование одного объекта
  • Копирование всех объектов бакета в другой бакет

В Object Storage поддерживается копирование объектов на стороне сервера (Server Side Copy).

Если в бакете отключено шифрование, то объекты будут копироваться в бакеты на стороне сервера. Хост, на котором выполняется команда копирования, и Object Storage обмениваются только ключами объектов. Плата за трафик при копировании в таком случае не взимается, поскольку он является внутренним для объектного хранилища. При этом сами запросы на копирование тарифицируются.

Если объекты в бакете зашифрованы, то сначала они будут скопированы на хост, выполняющий команду, и после загружены в бакет-приемник.

Большие объекты, загруженные с помощью составной загрузки, хранятся в бакете частями. Копирование таких объектов происходит путем вызова copyPart для каждой его части. Таким образом, расходы при копировании составных объектов выше, чем при копировании обычных.

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

Чтобы работать с объектами в зашифрованном бакете, у пользователя или сервисного аккаунта вместе с ролью storage.configurer должны быть следующие роли на ключ шифрования:

  • kms.keys.encrypter — для чтения ключа, шифрования и загрузки объектов;
  • kms.keys.decrypter — для чтения ключа, расшифровки и скачивания объектов;
  • kms.keys.encrypterDecrypter — включает разрешения, предоставляемые ролями kms.keys.encrypter и kms.keys.decrypter.

Подробнее см. Сервисные роли Key Management Service.

Копирование одного объектаКопирование одного объекта

Yandex Cloud CLI
AWS CLI

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

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

    yc storage s3api copy-object --help
    
  2. Получите список бакетов в каталоге по умолчанию:

    yc storage bucket list
    

    Результат:

    +------------------+----------------------+-------------+-----------------------+---------------------+
    |       NAME       |      FOLDER ID       |  MAX SIZE   | DEFAULT STORAGE CLASS |     CREATED AT      |
    +------------------+----------------------+-------------+-----------------------+---------------------+
    | first-bucket     | b1gmit33ngp6******** | 53687091200 | STANDARD              | 2022-12-16 13:58:18 |
    +------------------+----------------------+-------------+-----------------------+---------------------+
    
  3. Выполните команду:

    yc storage s3api copy-object \
      --copy-source <бакет_источник>/<ключ_объекта> \
      --bucket <бакет_приемник> \
      --key <ключ_объекта>
    

    Где:

    • --copy-source — имя бакета-источника и ключ объекта, который нужно скопировать.
    • --bucket — имя бакета, в который нужно скопировать объект.
    • --key — ключ, по которому объект будет храниться в бакете.

    Результат:

    copy_object_result:
      etag: '"d41d8cd98f00b204e9800998********"'
      last_modified_at: "2024-10-08T14:21:41.628Z"
    request_id: 61523025********
    copy_source_version_id: "null"
    

    Альтернативная команда:

    yc storage s3 cp \
      s3://<бакет_источник>/<ключ_объекта-оригинала> \
      s3://<бакет_приемник>/<ключ_объекта-копии>
    

    Результат:

    copy: s3://my-bucket/object.txt to s3://new-bucket/object-copy.txt
    
    Настройка параметров для команды yc storage s3 cp

    Вы можете настроить следующие параметры для команды yc storage s3 cp:

    • s3.max-queue-size — максимальное количество задач в очереди. Значение по умолчанию — 1000.
    • s3.max-concurrent-requests — максимальное количество одновременных запросов. Значение по умолчанию — 10.
    • s3.multipart-threshold — пороговый размер объекта, при превышении которого будет использоваться составная (multipart) загрузка. Значение по умолчанию — 8MB.
    • s3.multipart-chunksize — размер частей, на которые будет делиться объект при составной (multipart) загрузке. Значение по умолчанию — 8MB.

    Чтобы задать эти параметры, используйте команду yc config set <параметр> <значение>.

  1. Если у вас еще нет AWS CLI, установите и сконфигурируйте его.

  2. Выполните команду:

    aws --endpoint-url=https://storage.yandexcloud.kz/ \
      s3 cp s3://<бакет_источник>/<ключ_объекта> s3://<бакет_приемник>/<ключ_объекта>
    

    Где:

    • --endpoint-url — эндпоинт Object Storage.
    • s3 cp — команда для копирования объектов.

    Результат:

    copy: s3://<бакет_источник>/<ключ_объекта> to s3://<бакет_приемник>/<ключ_объекта>
    

    Подробнее о команде aws s3 cp см. в документации AWS CLI Command Reference.

Копирование всех объектов бакета в другой бакетКопирование всех объектов бакета в другой бакет

Yandex Cloud CLI
AWS CLI

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

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

    yc storage s3 cp --help
    
  2. Получите список бакетов в каталоге по умолчанию:

    yc storage bucket list
    

    Результат:

    +------------------+----------------------+-------------+-----------------------+---------------------+
    |       NAME       |      FOLDER ID       |  MAX SIZE   | DEFAULT STORAGE CLASS |     CREATED AT      |
    +------------------+----------------------+-------------+-----------------------+---------------------+
    | first-bucket     | b1gmit33ngp6******** | 53687091200 | STANDARD              | 2022-12-16 13:58:18 |
    +------------------+----------------------+-------------+-----------------------+---------------------+
    
  3. Выполните команду:

    yc storage s3 cp \
      s3://<бакет_источник>/ \
      s3://<бакет_приемник>/ \
      --recursive
    

    Где --recursive — параметр для копирования всех объектов.

    Результат:

    copy: s3://my-bucket/object-1.txt to s3://new-bucket/object-1-copy.txt
    copy: s3://my-bucket/object-2.txt to s3://new-bucket/object-2-copy.txt
    ...
    copy: s3://my-bucket/object-n.txt to s3://new-bucket/object-n-copy.txt
    
    Настройка параметров для команды yc storage s3 cp

    Вы можете настроить следующие параметры для команды yc storage s3 cp:

    • s3.max-queue-size — максимальное количество задач в очереди. Значение по умолчанию — 1000.
    • s3.max-concurrent-requests — максимальное количество одновременных запросов. Значение по умолчанию — 10.
    • s3.multipart-threshold — пороговый размер объекта, при превышении которого будет использоваться составная (multipart) загрузка. Значение по умолчанию — 8MB.
    • s3.multipart-chunksize — размер частей, на которые будет делиться объект при составной (multipart) загрузке. Значение по умолчанию — 8MB.

    Чтобы задать эти параметры, используйте команду yc config set <параметр> <значение>.

  1. Если у вас еще нет AWS CLI, установите и сконфигурируйте его.

  2. Выполните команду:

    aws --endpoint-url=https://storage.yandexcloud.kz/ \
      s3 cp --recursive s3:<бакет_источник>/ s3:<бакет_приемник>/
    

    Где:

    • --endpoint-url — эндпоинт Object Storage.
    • s3 cp — команда для копирования объектов.
    • --recursive — параметр для копирования всех объектов бакета-источника.

    Подробнее о команде aws s3 cp см. в документации AWS CLI Command Reference.

Все объекты будут скопированы из бакета-источника в бакет-приемник.

Примечание

Вы можете скопировать объекты между бакетами, как в рамках одного облака, так и между разными облаками. Для этого убедитесь, что у используемого сервисного аккаунта есть права на запись в оба бакета.

Была ли статья полезна?

Предыдущая
Переименование и перемещение объекта
Следующая
Получение публичной ссылки на объект
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»