Новости
Добавили три новые модели LLM в панель управления GPT API
DF
марта 18, 2025
Обновлено марта 18, 2025

Подключениe к S3-совместимому хранилищу через Amazon S3 API на Ubuntu с предварительной установкой Python

Python Ubuntu Объектное хранилище

В данной статье мы разберем, как подключиться к S3-совместимому облачному хранилищу, используя API Amazon S3 в среде Ubuntu. Рассмотрим установку необходимых инструментов, настройку Python-скрипта для работы с хранилищем, а также выполним основные операции: просмотр списка бакетов, загрузку и скачивание файлов. Все шаги подробно описаны, чтобы даже начинающий пользователь смог успешно настроить подключение.

Установка Python и pip

Сначала обновляем систему и устанавливаем Python 3 вместе с менеджером пакетов pip:

sudo apt update
sudo apt install python3 python3-pip
python3 -m pip install --upgrade pip
Kопировать

Установка библиотеки boto3

Для взаимодействия с S3 используем библиотеку boto3, устанавливаем её следующим образом:

pip3 install boto3
Kопировать

Написание Python-скрипта

Перед этим шагом обозначим, что такое бакет:
Бакет (bucket) — это контейнер для хранения файлов в S3-совместимом хранилище. Он выполняет роль каталога, в котором можно организовывать и управлять объектами (файлами).

Создаем новый файл s3_client.py в текстовом редакторе:

nano s3_client.py
Kопировать

Вставляем код, заменяя ВАШ_КЛЮЧ_ДОСТУПА,ВАШ_СЕКРЕТНЫЙ_КЛЮЧ и https://ваш.endpoint.url на ваши реальные данные:

import boto3
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}")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Kопировать

Сохраняем файл и закрываем редактор (Ctrl + X, затем Y и Enter).

Запуск скрипта

Для проверки подключения запускаем скрипт:

python3 s3_client.py
Kопировать

Если всё настроено правильно, появится список доступных бакетов.

Дополнительные операции с хранилищем

Создание тестового файла

Перед загрузкой файла создадим его:

echo "Тестовый контент" > local_file.txt
Kопировать

Загрузка файла в хранилище

Добавляем в скрипт следующий код:

s3_client.upload_file('local_file.txt', 'bucket_name', 'remote_file.txt')
Kопировать

Где:

  • local_file.txt — локальный файл,
  • bucket_name — имя бакета,
  • remote_file.txt — имя файла в хранилище.

Скачивание файла

Для скачивания файла используем:

s3_client.download_file('bucket_name', 'remote_file.txt', 'local_file.txt')
Kопировать

Где:

  • bucket_name — имя бакета,
  • remote_file.txt— имя файла в облаке,
  • local_file.txt— путь для сохранения загруженного файла.

Проверка зависимостей

При возникновении ошибок стоит проверить зависимости. Например, можно обновить botocore>:

pip3 install --upgrade botocore
Kопировать

Примечания

  • Если у вас нет настроенного S3-совместимого хранилища, уточните у провайдера параметры endpoint_url, ключи доступа и настройки бакетов.
  • Вы можете использовать любой удобный текстовый редактор вместо nano.
  • Убедитесь, что ваш аккаунт обладает достаточными правами для работы с объектами S3.

FAQ (Часто задаваемые вопросы)

Как исправить ошибку "Access Denied" при подключении к S3?

Проверьте правильность введённых ключей доступа и убедитесь, что у пользователя есть разрешения на чтение/запись объектов в хранилище.

Что делать, если не удаётся установить boto3?

Убедитесь, что у вас установлены последние версии pip и setuptools, а также попробуйте запустить команду:

python3 -m pip install --upgrade pip setuptools
Kопировать

Можно ли использовать этот скрипт для Amazon S3?

Да, если указать endpoint_url='https://s3.amazonaws.com', скрипт будет работать с официальным сервисом Amazon S3.

Оценка:
5 из 5
Аverage rating : 5
Оценок: 2
220140 Минск ул. Домбровская, д. 9
+375 (173) 88-72-49
700 300
ООО «ИТГЛОБАЛКОМ БЕЛ»
700 300