Renaming and moving objects
To work with objects in an encrypted bucket, a user or service account must have the following roles for the encryption key in addition to the storage.configurer role:
kms.keys.encrypter: To read the key, encrypt and upload objects.kms.keys.decrypter: To read the key, decrypt and download objects.kms.keys.encrypterDecrypter: This role includes thekms.keys.encrypterandkms.keys.decrypterpermissions.
For more information, see Key Management Service service roles.
In addition to the Yandex Cloud CLI and AWS CLI, you can also use other supported tools, such as a file browser, to rename and move objects.
Renaming
Note
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
-
See the description of the CLI command for renaming an object in a bucket:
yc storage s3 mv --help -
Get a list of buckets in the default folder:
yc storage bucket listResult:
+------------------+----------------------+-------------+-----------------------+---------------------+ | NAME | FOLDER ID | MAX SIZE | DEFAULT STORAGE CLASS | CREATED AT | +------------------+----------------------+-------------+-----------------------+---------------------+ | first-bucket | b1gmit33ngp6******** | 53687091200 | STANDARD | 2022-12-16 13:58:18 | +------------------+----------------------+-------------+-----------------------+---------------------+ -
Run this command:
yc storage s3 mv \ s3://<bucket_name>/<object_key> \ s3://<bucket_name>/<new_object_key>Result:
move: s3://my-bucket/object.txt to s3://my-bucket/renamed-object.txt
For more information about the yc storage s3 mv command, see the documentation.
-
If you do not have the AWS CLI yet, install and configure it.
-
To rename an object, run this command:
aws --endpoint-url=https://storage.yandexcloud.net/ \ s3 mv s3://<bucket_name>/<object_key> s3://<bucket_name>/<new_object_key>Where:
--endpoint-url: Object Storage endpoint.s3 mv: Command to rename or move an object. To rename an object, in the first part of the command, provide the bucket name and the current key of the object you want to rename, and in the second part, the bucket name and the new object key.
Result:
move: s3://<bucket_name>/<object_key> to s3://<bucket_name>/<new_object_key>
For more information about the aws s3 mv command, see this article
Updating the prefix for an object group
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
To update the prefix for an object group, run this command:
yc storage s3 mv --recursive \
s3://<bucket_name>/<prefix>/ \
s3://<bucket_name>/<new_prefix>/
Result:
move: s3://my-bucket/my-prefix/ to s3://my-bucket/renamed-prefix/
For more information about the yc storage s3 mv command, see the documentation.
-
If you do not have the AWS CLI yet, install and configure it.
-
Run this command:
aws --endpoint-url=https://storage.yandexcloud.net/ \ s3 mv --recursive s3://<bucket_name>/<prefix>/ s3://<bucket_name>/<new_prefix>/Where:
--endpoint-url: Object Storage endpoint.s3 mv: Command to rename or move an object. To rename an object, in the first part of the command, provide the bucket name and the current prefix of the object group you want to rename, and in the second part, the bucket name and the new prefix for the object group.--recursive: Parameter for updating the prefix for an object group.
Result:
move: s3://<bucket_name>/<prefix>/ to s3://<bucket_name>/<new_prefix>/
For more information about the aws s3 mv command, see this article
Moving
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
-
Read the description of the CLI command for moving an object:
yc storage s3 mv --help -
Get a list of buckets in the default folder:
yc storage bucket listResult:
+------------------+----------------------+-------------+-----------------------+---------------------+ | NAME | FOLDER ID | MAX SIZE | DEFAULT STORAGE CLASS | CREATED AT | +------------------+----------------------+-------------+-----------------------+---------------------+ | first-bucket | b1gmit33ngp6******** | 53687091200 | STANDARD | 2022-12-16 13:58:18 | +------------------+----------------------+-------------+-----------------------+---------------------+ -
Run this command:
yc storage s3 mv \ s3://<source_bucket_name>/<object_key> \ s3://<target_bucket_name>/<object_key>Result:
move: s3://my-bucket/object.txt to s3://new-bucket/object.txt
-
If you do not have the AWS CLI yet, install and configure it.
-
To move an object, e.g., from one bucket to another, run this command:
aws --endpoint-url=https://storage.yandexcloud.net/ \ s3 mv s3://<source_bucket_name>/<object_key> s3://<target_bucket_name>/<object_key>Where:
--endpoint-url: Object Storage endpoint.s3 mv: Command to rename or move an object. To move an object, in the first part of the command, provide the source bucket name and the key of the object you want to move, and in the second part, the target bucket name and the object key.
Result:
move: s3://<source_bucket_name>/<object_key> to s3://<target_bucket_name>/<object_key>
For more information about the aws s3 mv command, see this article
Moving an object from one directory to another
In Object Storage, directories are simulated using key prefixes. To move an object from one directory to another, rename its key prefix, e.g.:
yc storage s3 mv \
s3://<bucket_name>/<prefix>/<object_name> \
s3://<bucket_name>/<new_prefix>/<object_name>
Result:
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://<bucket_name>/<prefix>/<object_name> s3://<bucket_name>/<new_prefix>/<object_name>
Result:
move: s3://my-bucket/my-prefix/object.txt to s3://my-bucket/renamed-prefix/object.txt
Moving a directory with objects
In Object Storage, directories are simulated using key prefixes. To move a directory with objects, update the prefix for an object group.
Moving objects from one bucket to another
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
Run this command:
yc storage s3 mv --recursive \
s3://<source_bucket_name>/ \
s3://<target_bucket_name>/
Result:
move: s3://my-bucket/object1.txt to s3://new-bucket/object1.txt
move: s3://my-bucket/object2.txt to s3://new-bucket/object2.txt
-
If you do not have the AWS CLI yet, install and configure it.
-
Run this command:
aws --endpoint-url=https://storage.yandexcloud.net/ \ s3 mv --recursive s3://<source_bucket_name> s3://<target_bucket_name>Where:
--endpoint-url: Object Storage endpoint.s3 mv: Command to rename or move an object. To move all objects, in the first part of the command, provide the source bucket name, and in the second part, the target bucket name.--recursive: Parameter for moving all objects from one bucket to another.
Result:
move: s3://<source_bucket_name>/<object_1_key> to s3://<target_bucket_name>/<object_1_key> move: s3://<source_bucket_name>/<object_2_key> to s3://<target_bucket_name>/<object_2_key>
For more information about the aws s3 mv command, see this article