SDK для Python (boto)

boto3 и boto — это набор средств разработки для работы с сервисами AWS с поддержкой языков программирования Python 2.x и Python 3.x.

Для установки воспользуйтесь инструкциями в репозиториях boto3 и boto.

До начала работы

Получите реквизиты доступа к Объектному хранилищу (endpoint, access Key, Secret Key). Если у вас нет реквизитов доступа, обратитесь в техподдержку.

Настройка

Создайте в домашнем каталоге файл .aws/credentials и задайте в нем пару ключей в формате:

[default]
         aws_access_key_id = <id>
         aws_secret_access_key = <secretKey>

Задайте в файле .aws/config регион в формате:

[default]
         region=us-east-1

Примеры операций

#!/usr/bin/env python
#-*- coding: utf-8 -*-
import boto3
session = boto3.session.Session()
s3 = session.client(
    service_name='s3',
    endpoint_url='https://<endpoint>'
)

# Создать новую корзину
s3.create_bucket(Bucket='bucket-name')

# Загрузить объекты в корзину из строки
s3.put_object(Bucket='bucket-name', Key='object_name', Body='TEST')

# Загрузить объекты в корзину из файла
s3.upload_file('this_script.py', 'bucket-name', 'py_script.py')
s3.upload_file('this_script.py', 'bucket-name', 'script/py_script.py')

# Получить список объектов в корзине
for key in s3.list_objects(Bucket='bucket-name')['Contents']:
    print(key['Key'])

# Удалить несколько объектов
forDeletion = [{'Key':'object_name'}, {'Key':'script/py_script.py'}]
response = s3.delete_objects(Bucket='bucket-name', Delete={'Objects': forDeletion})

# Удалить корзину и все объекты, включая их версии
s3 = boto3.resource('s3')
s3_bucket = s3.Bucket(bucket_name)
bucket_versioning = s3.BucketVersioning(bucket_name)
if bucket_versioning.status == 'Enabled':
      s3_bucket.object_versions.delete()
 else:
      s3_bucket.objects.all().delete()
 bucket.delete()

# Получить объект
get_object_response = s3.get_object(Bucket='bucket-name',Key='py_script.py')
print(get_object_response['Body'].read())

См.также

С полной документацией по boto3 вы можете ознакомиться на сайте разработчика.