暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何在 AWS 上使用 Python Boto3 创建 S3 存储桶

运维漫谈 2021-12-04
2724

在本文中,我们将学习使用 Python Boto3 库创建 S3 存储桶、创建的存储桶的步骤、使用“create_bucket”和“delete_bucket”方法分别创建和删除存储桶。

在我们继续之前,我假设您熟悉 S3 存储桶.

前提条件

  • AWS 账户(如果没有,请创建)
  • S3的基本理解
  • 对Python的基本理解
  • 系统上可用的Python

我们要做什么

  • 安装 Boto3
  • 了解所需的方法。
  • 创建和删除 S3 存储桶。

安装 Boto3 依赖项

Python 默认在 Ubuntu Server 中,所以你不需要安装它。

要检查系统上的 Python 版本,请使用以下命令。

which python
/usr/bin/python --version

或者

python --version

如果你没有 pip 并且你使用的是 Ubuntu,请执行以下命令首先更新本地 repo。

sudo apt update

要安装 pip,请使用以下命令。

sudo apt install python-pip

要检查安装的 Pip 版本,请执行以下命令。

pip --version

一旦你有了 python 和 pip,你就可以安装 Boto3。

安装 Boto3 非常简单直接。要安装 Boto3,请使用以下命令。

pip install boto3

要检查是否安装了 Boto3 及其版本,请执行以下命令。

pip show boto3

了解所需的方法

要创建存储桶,我们将使用“create_bucket”方法,以下是该方法的语法及其可以接受的所有参数。我们不会使用所有这些参数来创建 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
)

  • ACL:要应用于存储桶的固定 ACL。
  • Bucket:要创建的桶的名称。这必须是全局唯一的,并且没有 2 个存储桶可以具有相同的名称。
  • CreateBucketConfiguration:存储桶的配置信息。
  • LocationConstraint:指定要创建桶的区域。美国东部(弗吉尼亚北部)区域 (us-east-1) 是默认区域,如果未指定区域,则会在此处创建存储桶。
  • GrantFullControl:允许被授予者对存储桶的读、写、读 ACP 和写 ACP 权限。
  • GrantRead :允许被授权者列出存储桶中的对象。
  • GrantReadACP:允许被授权者读取存储桶 ACL。
  • GrantWrite:允许被授权者创建、覆盖和删除存储桶中的任何对象。
  • GrantWriteACP:允许被授权者为适用的存储桶编写 ACL。
  • ObjectLockEnabledForBucket:指定是否要为新存储桶启用 S3 对象锁定。

以下是删除我们创建的存储桶的方法语法。

delete_bucket 方法的请求语法

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

Bucket:指定要删除的桶。您需要在此处指定要删除的 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 create-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 delete-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

结论

我们看到了使用 Python 的 Boto3 库创建 S3 存储桶以及删除它是多么容易,我们创建了一个简单的存储桶,您可以根据需要和要求自定义代码,并使用 create_bucket 方法中可用的不同参数创建存储桶。


文章转载自运维漫谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论