Поиск по сайту:

Как создать корзину S3 с помощью Python Boto3 на AWS


В этой статье мы научимся создавать корзину S3 с помощью библиотеки Python Boto3. Мы также увидим шаги по удалению созданного нами сегмента. Мы будем использовать методы «create_bucket» и «delete_bucket» для создания и удаления ведра соответственно.

Прежде чем мы продолжим, я предполагаю, что вы знакомы с корзиной S3, но если вы не знакомы со службой корзины S3, нажмите здесь, чтобы узнать, как создать корзину из консоли AWS.

Предпосылки

  1. Аккаунт AWS (создайте, если у вас его нет)
  2. Основное понимание S3
  3. Основное понимание Python
  4. Python доступен в системе

Что мы будем делать

  1. Установить Boto3
  2. Знайте необходимые методы.
  3. Создайте и удалите корзину S3.

Установите зависимости Boto3

Python входит в состав Ubuntu Server по умолчанию, поэтому его не нужно устанавливать.

Чтобы проверить версию Python в вашей системе, используйте следующую команду.

какой python
/usr/bin/python --version

ИЛИ

питон --версия

Если у вас нет pip и вы используете Ubuntu, выполните следующую команду, чтобы сначала обновить локальное хранилище.

судо подходящее обновление

Чтобы установить pip, используйте следующую команду.

sudo apt установить python-pip

Чтобы проверить установленную версию Pip, выполните следующую команду.

пип --версия

Если у вас есть python и pip, вы можете установить Boto3.

Установка Boto3 очень проста и понятна. Чтобы установить Boto3, используйте следующую команду.

pip install boto3

Чтобы проверить, установлен ли Boto3 и его версию, выполните следующую команду.

пип-шоу бото3

Знать необходимые методы

Чтобы создать ведро, мы будем использовать метод create_bucket. Ниже приведен синтаксис метода со всеми параметрами, которые он может принимать. Мы не будем использовать все эти параметры для создания сегмента, но вы можете попробовать, если хотите.

Синтаксис запроса метода create_bucket

response = client.create_bucket(
    ACL='private'|'public-read'|'public-read-write'|'authenticated-read',
    Bucket='string',
    CreateBucketConfiguration={
        'LocationConstraint': 'EU'|'eu-west-1'|'us-west-1'|'us-west-2'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'sa-east-1'|'cn-north-1'|'eu-central-1'
    },
    GrantFullControl='string',
    GrantRead='string',
    GrantReadACP='string',
    GrantWrite='string',
    GrantWriteACP='string',
    ObjectLockEnabledForBucket=True|False
)

  1. ACL:  готовый список ACL, применяемый к корзине.
  2. Корзина . Имя создаваемой корзины. Оно должно быть уникальным в глобальном масштабе, и никакие два сегмента не могут иметь одинаковые имена.
  3. CreateBucketConfiguration : информация о конфигурации сегмента.
    LocationConstraint:  указывает регион, в котором вы хотите создать сегмент. Регион Восток США (Северная Вирджиния) (us-east-1) является регионом по умолчанию, и сегменты создаются здесь, если регион не указан.
  4. GrantFullControl:  позволяет получателю разрешений на чтение, запись, чтение и запись ACP в корзине.
  5. GrantRead: Позволяет получателю прав перечислить объекты в сегменте.
  6. GrantReadACP: разрешает получателю прав читать список управления доступом сегмента.
  7. GrantWrite. Позволяет получателю создавать, перезаписывать и удалять любые объекты в корзине.
  8. GrantWriteACP. Позволяет получателю права написать ACL для соответствующей корзины.
  9. ObjectLockEnabledForBucket: указывает, хотите ли вы включить блокировку объектов S3 для нового сегмента.

Ниже приведен синтаксис метода для удаления созданного нами сегмента.

Синтаксис запроса метода delete_bucket 

response = client.delete_bucket(
    Bucket='string'
)

  1. Корзина : указывает удаляемую корзину. Вам нужно указать здесь свое имя корзины S3, которое вы хотите удалить.

Создание и удаление корзины S3

Создайте файл \config.properties\, который будет содержать имя пользователя AWS aws_access_key_id_value, aws_secret_access_key_value и регион. Добавьте свои ключи в этот файл.

config.properties

aws_access_key_id_value='ACCESS-KEY-OF-THE-AWS-ACCOUNT'
aws_secret_access_key_value='SECRETE-KEY-OF-THE-AWS-ACCOUNT'
region_name_value='eu-west-3'

Теперь создайте файл create-s3-bucket.py и добавьте в него следующий код. Этот код будет считывать значения, определенные на предыдущем шаге, и создавать корзину с именем, которое вы указали в этом файле. Здесь я создам ведро с именем \rahul-boto3-test-delete\, измените его на нужное вам.

vim создать-s3-bucket.py

import boto3

def getVarFromFile(filename):
    import imp
    f = open(filename)
    global data
    data = imp.load_source('data', '', f)
    f.close()


getVarFromFile('config.properties')

client = boto3.client(
's3',
    aws_access_key_id=data.aws_access_key_id_value,
    aws_secret_access_key=data.aws_secret_access_key_value
)

response = client.create_bucket(
    Bucket='rahul-boto3-test-delete',
    CreateBucketConfiguration={
        'LocationConstraint': 'eu-west-3',
    },
)

print (response)

Создайте файл \delete-s3-bucket.py\, который будет содержать код для удаления сегмента. Скопируйте и вставьте в него следующий код.

vim удалить-s3-bucket.py

def getVarFromFile(filename):
    import imp
    f = open(filename)
    global data
    data = imp.load_source('data', '', f)
    f.close()


getVarFromFile('config.properties')

client = boto3.client(
's3',
    aws_access_key_id=data.aws_access_key_id_value,
    aws_secret_access_key=data.aws_secret_access_key_value
)

response = client.delete_bucket(Bucket='rahul-boto3-test-delete')

print (response)

Теперь вы готовы создать ведро.

Чтобы создать корзину, выполните файл \create-s3-bucket.py\, используя следующую команду.

python create-s3-bucket.py

Если вам больше не нужен сегмент и вы хотите его удалить, выполните файл \delete-s3-bucket.py\, используя следующую команду.

python delete-s3-bucket.py

Заключение

Мы увидели, как легко создать корзину S3 с помощью библиотеки Python Boto3, а также удалить ее. Мы создали простое ведро, вы можете настроить код в соответствии со своими потребностями и требованиями и создать ведро, используя различные параметры, доступные в методе create_bucket.