S3
SDK для Python (boto) для S3 VMware
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 boto3session = 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 вы можете ознакомиться на сайте разработчика.