В этой статье мы рассмотрим пошаговый процесс подключения к S3-совместимому хранилищу с использованием Amazon S3 API на Ubuntu. Вы узнаете, как установить необходимые инструменты, настроить Python-скрипт для взаимодействия с хранилищем, а также выполнять базовые операции: получение списка бакетов, загрузку и скачивание файлов. Мы детально разберём каждый шаг, чтобы даже начинающий пользователь смог уверенно настроить и протестировать подключение
Установка Python и pip
Обновляем систему и устанавливаем Python 3 и pip:
Установка библиотеки boto3
Устанавливаем библиотеку для работы с S3:
Создание Python-скрипта
Создаем новый файл (например, s3_client.py) в любом текстовом редакторе:
Вставляем следующий код, заменяя ВАШ_КЛЮЧ_ДОСТУПА, ВАШ_СЕКРЕТНЫЙ_КЛЮЧ и https://ваш.endpoint.url на соответствующие значения:
from botocore.client import Config
# Заменяем эти значения на свои
access_key = 'ВАШ_КЛЮЧ_ДОСТУПА'
secret_key = 'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ'
endpoint_url = 'https://ваш.endpoint.url'
# Создание клиента S3
s3_client = boto3.client(
's3',
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
endpoint_url=endpoint_url,
config=Config(signature_version='s3')
)
# Пример: Получение списка бакетов
try:
response = s3_client.list_buckets()
print("Список бакетов:")
for bucket in response['Buckets']:
print(f" {bucket['Name']}")
except Exception as e:
print(f"Ошибка: {e}")
Сохраняем изменения и выходим из редактора (Ctrl + X, затем Y и Enter).
Запуск скрипта
Запускаем скрипт:
Если всё настроено верно, вы увидите список бакетов в вашем хранилище.
Дополнительные операции с хранилищем
Создание тестового файла
Для проверки загрузки и скачивания файла создаём тестовый файл:
Загрузка файла
Для загрузки файла добавляем в скрипт:
Где:
- local_file.txt — путь к локальному файлу.
- bucket_name — имя бакета.
- remote_file.txt — имя файла в хранилище.
Скачивание файла
Для скачивания файла добавляем:
Где:
- bucket_name — имя бакета.
- remote_file.txt — имя файла в хранилище.
- local_file.txt — путь, куда будет сохранён файл.
- Проверка зависимостей
Если возникают ошибки, убедитесь, что установлены все необходимые зависимости. Например, можно обновить botocore вручную:
Примечания
Если у вас нет настроенного S3-совместимого хранилища, уточните у вашего поставщика услуг доступные endpoint_url, ключи доступа и настройки бакетов.
Вы можете использовать альтернативные текстовые редакторы, такие как vim или любой другой удобный вам инструмент.
Убедитесь, что ваш пользователь обладает достаточными правами на создание и управление файлами в S3-хранилище.