Переименование и перемещение объекта
Чтобы работать с объектами в зашифрованном бакете, у пользователя или сервисного аккаунта вместе с ролью 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
.
-
Посмотрите описание команды CLI для переименования объекта в бакете:
yc storage s3 mv --help
-
Получите список бакетов в каталоге по умолчанию:
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 | +------------------+----------------------+-------------+-----------------------+---------------------+
-
Выполните команду:
yc storage s3 mv \ s3://<имя_бакета>/<ключ_объекта> \ s3://<имя_бакета>/<новый_ключ_объекта>
Результат:
move: s3://my-bucket/object.txt to s3://my-bucket/renamed-object.txt
Подробнее о команде yc storage s3 mv
см. в документации.
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Чтобы переименовать объект, выполните команду:
aws --endpoint-url=https://storage.yandexcloud.net/ \ s3 mv s3://<имя_бакета>/<ключ_объекта> s3://<имя_бакета>/<новый_ключ_объекта>
Где:
--endpoint-url
— эндпоинт Object Storage.s3 mv
— команда для переименования или перемещения объекта. Чтобы переименовать объект, в первой части команды укажите имя бакета и актуальный ключ объекта, который нужно переименовать, а во второй — имя бакета и новый ключ объекта.
Результат:
move: s3://<имя_бакета>/<ключ_объекта> to s3://<имя_бакета>/<новый_ключ_объекта>
Подробнее о команде aws s3 mv
см. в документации AWS CLI Command Reference
Изменение префикса для группы объектов
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
Чтобы изменить префикс для группы объектов, выполните команду:
yc storage s3 mv --recursive \
s3://<имя_бакета>/<префикс>/ \
s3://<имя_бакета>/<новый_префикс>/
Результат:
move: s3://my-bucket/my-prefix/ to s3://my-bucket/renamed-prefix/
Подробнее о команде yc storage s3 mv
см. в документации.
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Выполните команду:
aws --endpoint-url=https://storage.yandexcloud.net/ \ s3 mv --recursive s3://<имя_бакета>/<префикс>/ s3://<имя_бакета>/<новый_префикс>/
Где:
--endpoint-url
— эндпоинт Object Storage.s3 mv
— команда для переименования или перемещения объекта. Чтобы переименовать объект, в первой части команды укажите имя бакета и актуальный префикс группы объектов, которую нужно переименовать, а во второй — имя бакета и новый префикс группы объектов.--recursive
— параметр для изменения префикса группы объектов.
Результат:
move: s3://<имя_бакета>/<префикс>/ to s3://<имя_бакета>/<новый_префикс>/
Подробнее о команде aws s3 mv
см. в документации AWS CLI Command Reference
Перемещение
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для перемещения объекта:
yc storage s3 mv --help
-
Получите список бакетов в каталоге по умолчанию:
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 | +------------------+----------------------+-------------+-----------------------+---------------------+
-
Выполните команду:
yc storage s3 mv \ s3://<имя_бакета-источника>/<ключ_объекта> \ s3://<имя_целевого_бакета>/<ключ_объекта>
Результат:
move: s3://my-bucket/object.txt to s3://new-bucket/object.txt
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Чтобы переместить объект, например, из одного бакета в другой, выполните команду:
aws --endpoint-url=https://storage.yandexcloud.net/ \ s3 mv s3://<имя_бакета-источника>/<ключ_объекта> s3://<имя_целевого_бакета>/<ключ_объекта>
Где:
--endpoint-url
— эндпоинт Object Storage.s3 mv
— команда для переименования или перемещения объекта. Чтобы переместить объект, в первой части команды укажите имя бакета-источника и ключ объекта, который нужно переместить, а во второй — имя целевого бакета и ключ объекта.
Результат:
move: s3://<имя_бакета-источника>/<ключ_объекта> to s3://<имя_целевого_бакета>/<ключ_объекта>
Подробнее о команде aws s3 mv
см. в документации AWS CLI Command Reference
Перемещение объекта из одной папки в другую
В Object Storage папки имитируются с помощью префиксов ключей. Чтобы переместить объект из одной папки в другую, переименуйте префикс его ключа, например:
yc storage s3 mv \
s3://<имя_бакета>/<префикс>/<имя_объекта> \
s3://<имя_бакета>/<новый_префикс>/<имя_объекта>
Результат:
move: s3://my-bucket/my-prefix/object.txt to s3://my-bucket/renamed-prefix/object.txt
aws --endpoint-url=https://storage.yandexcloud.net/ \
s3 mv s3://<имя_бакета>/<префикс>/<имя_объекта> s3://<имя_бакета>/<новый_префикс>/<имя_объекта>
Результат:
move: s3://my-bucket/my-prefix/object.txt to s3://my-bucket/renamed-prefix/object.txt
Перемещение папки с объектами
В Object Storage папки имитируются с помощью префиксов ключей. Чтобы переместить папку с объектами, измените префикс для группы объектов.
Перемещение всех объектов из одного бакета в другой
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
Выполните команду:
yc storage s3 mv --recursive \
s3://<имя_бакета-источника>/ \
s3://<имя_целевого_бакета>/
Результат:
move: s3://my-bucket/object1.txt to s3://new-bucket/object1.txt
move: s3://my-bucket/object2.txt to s3://new-bucket/object2.txt
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Выполните команду:
aws --endpoint-url=https://storage.yandexcloud.net/ \ s3 mv --recursive s3://<имя_бакета-источника> s3://<имя_целевого_бакета>
Где:
--endpoint-url
— эндпоинт Object Storage.s3 mv
— команда для переименования или перемещения объекта. Чтобы переместить все объекты, в первой части команды укажите имя бакета-источника, а во второй — имя целевого бакета.--recursive
— параметр для перемещения всех объектов из одного бакета в другой.
Результат:
move: s3://<имя_бакета-источника>/<ключ_объекта_1> to s3://<имя_целевого_бакета>/<ключ_объекта_1> move: s3://<имя_бакета-источника>/<ключ_объекта_2> to s3://<имя_целевого_бакета>/<ключ_объекта_2>
Подробнее о команде aws s3 mv
см. в документации AWS CLI Command Reference