Скачать все объекты с определенным префиксом
- AWS CLI
- Python API
Если AWS CLI еще не установлен, установите и настройте его. Для работы с объектным хранилищем используйте команды s3api и s3.
AWS CLI. Скачать все объекты с определенным префиксом
В терминале выполните команду:
aws s3 cp --recursive s3://<bucket_name>/<prefix> <path>
Укажите:
<bucket_name> — имя бакета;
<prefix> — общий префикс имен объектов для скачивания, например example/folder;
<path> — путь в локальной файловой системе.
Подробнее об объектах см. в статье Об объектах. Рекомендуем также ознакомиться со статьей Ссылка на скачивание объекта.
Boto3 — это библиотека Python, предоставляющая программный интерфейс (SDK) для взаимодействия с объектным хранилищем S3. Подробности см. в документации AWS Boto3.
Python API. Скачать все объекты с определенным префиксом
import boto3
from botocore.exceptions import ClientError
session = boto3.session.Session(profile_name='default')
s3 = session.client('s3', endpoint_url='$endpoint')
def download_objects_with_prefix(bucket_name, prefix, local_dir):
paginator = s3.get_paginator('list_objects_v2')
try:
for page in paginator.paginate(Bucket=bucket_name, Prefix=prefix):
for obj in page.get('Contents', []):
key = obj['Key']
local_path = os.path.join(local_dir, key[len(prefix):].lstrip('/'))
os.makedirs(os.path.dirname(local_path), exist_ok=True)
s3.download_file(bucket_name, key, local_path)
print(f"Скачан: {key} -> {local_path}")
except ClientError as e:
print(f"Ошибка при скачивании с префиксом '{prefix}': {e}")
download_objects_with_prefix('<bucket_name>', '<prefix>', '<path>')
Укажите:
<bucket_name> — имя бакета;
<prefix> — префикс;
<path> — путь.
Подробнее об объектах см. в статье Об объектах. Рекомендуем также ознакомиться со статьей Ссылка на скачивание объекта.