tocdepth

2

SDK для Python (boto) для работы с Object Storage

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

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

Перед началом работы

Для доступа Object Storage потребуются:

Настройка

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

    [default]
    aws_access_key_id=<tenant_id>:<key_id>
    aws_secret_access_key=<key_secret>
    
  2. Задайте в файле .aws/config регион:

    [default]
    region=ru-central-1
    

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

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

# Создать новый бакет
s3.create_bucket(Bucket='my-bucket')

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

# Загрузить объекты в бакет из файла
s3.upload_file('/tmp/filename.txt', 'my-bucket', 'storage-filename.txt')
s3.upload_file('image.png', 'my-bucket', 'image-in-storage.png')
s3.upload_file('my_script.py', 'my-bucket', 'script/my_script.py')

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

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

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

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

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

Запустили Evolution free tier
для Dev & Test
Получить