Скачивание объекта
- В консоли управления
выберите каталог. - Выберите сервис Object Storage.
- Выберите бакет, из которого вы хотите скачать объект.
- Напротив объекта, который вы хотите скачать, нажмите
и выберите Скачать.
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
Чтобы скачать один объект, выполните команду:
aws s3 cp \
--endpoint-url=https://storage.yandexcloud.net \
s3://<имя_бакета>/<ключ_объекта> \
<локальный_путь>
Где:
--endpoint-url
— эндпоинт Object Storage.<имя_бакета>
— имя бакета, из которого необходимо скачать объект.<ключ_объекта>
— ключ объекта, который необходимо скачать.<локальный_путь>
— путь к директории, в которую будет сохранен скачанный объект. Например,~/downloads/
.
Чтобы скачать все объекты из бакета, выполните команду:
aws s3 cp \
--endpoint-url=https://storage.yandexcloud.net \
--recursive \
s3://<имя_бакета> \
<локальный_путь>
Где:
--endpoint-url
— эндпоинт Object Storage.--recursive
— команда для скачивания всех объектов бакета в локальную директорию.<имя_бакета>
— имя бакета, из которого необходимо скачать объект.<локальный_путь>
— путь к директории, в которую будут сохранены скачанные объекты. Например,~/downloads/
.
Команда aws s3 cp
— высокоуровневая, ее функциональность ограничена. Подробнее см. в справочнике AWS CLI
Объекты из бакета можно скачать выборочно с помощью команды aws s3api
и шаблона запроса в формате JMESPath. Для скачивания объектов по шаблону выполните команду:
-
Bash:
aws s3api list-objects \ --endpoint-url https://storage.yandexcloud.net \ --bucket <имя_бакета> \ --query '<запрос>' \ --output text | xargs -I {} aws s3api get-object --endpoint-url https://storage.yandexcloud.net --bucket <имя_бакета> --key {} <локальный_путь>{}
Где:
--endpoint-url
— эндпоинт Object Storage.--bucket
— имя бакета, из которого необходимо скачать объекты.--query
— запрос в формате JMESPath .<локальный_путь>
— путь к директории, в которую будут сохранены скачанные объекты. Например,~/downloads/
.
Пример команды для скачивания из бакета
sample-bucket
в локальную директорию~/downloads/
всех объектов, имена файлов которых начинаются сdate-20231002
:aws s3api list-objects \ --endpoint-url https://storage.yandexcloud.net \ --bucket sample-bucket \ --query 'Contents[?starts_with(Key, `date-20231002`) == `true`].[Key]' \ --output text | xargs -I {} aws s3api get-object --endpoint-url https://storage.yandexcloud.net --bucket sample-bucket --key {} ~/downloads/{}
-
PowerShell
Foreach($x in (aws s3api list-objects ` --endpoint-url https://storage.yandexcloud.net ` --bucket <имя_бакета> ` --query '<запрос>' ` --output text)) ` {aws s3api get-object --endpoint-url https://storage.yandexcloud.net --bucket <имя_бакета> --key $x <локальный_путь>$x}
Где:
--endpoint-url
— эндпоинт Object Storage.--bucket
— имя бакета, из которого необходимо скачать объекты.--query
— запрос в формате JMESPath .<локальный_путь>
— путь к папке, в которую будут сохранены скачанные объекты. Например,d:\downloads\
.
Пример команды для скачивания из бакета
sample-bucket
в локальную папкуd:\downloads\
всех объектов, имена файлов которых начинаются сdate-20231002
:Foreach($x in (aws s3api list-objects ` --endpoint-url https://storage.yandexcloud.net ` --bucket sample-bucket ` --query 'Contents[?starts_with(Key, `date-20231002`) == `true`].[Key]' ` --output text)) ` {aws s3api get-object --endpoint-url https://storage.yandexcloud.net --bucket sample-bucket --key $x d:\downloads\$x}
Чтобы скачать объект, воспользуйтесь методом S3 API get.