この記事では、PythonBoto3ライブラリを使用してS3バケットを作成する方法を学習します。作成したバケットを削除する手順も表示されます。 「create_bucket」メソッドと「delete_bucket」メソッドを使用して、それぞれバケットを作成および削除します。
先に進む前に、S3バケットに精通していることを前提としていますが、S3バケットサービスに精通していない場合は、ここをクリックしてAWSコンソールからバケットを作成する方法を学習してください。
前提条件
- AWSアカウント(お持ちでない場合は作成)
- S3の基本的な理解
- Pythonの基本的な理解
- システムで利用可能なPython
何をするか
- Boto3をインストール
- 必要な方法を理解してください。
- S3バケットを作成および削除します。
Boto3の依存関係をインストールする
PythonはデフォルトでUbuntuServerに付属しているため、インストールする必要はありません。
システムのPythonバージョンを確認するには、次のコマンドを使用します。
どのpython
/ usr / bin / python --version
または
python --version
pipがなく、Ubuntuを使用している場合は、次のコマンドを実行して、最初にローカルリポジトリを更新します。
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」メソッドを使用します。以下は、受け入れることができるすべてのパラメーターを使用したメソッドの構文です。これらすべてのパラメータを使用してバケットを作成するわけではありませんが、必要に応じて試してみることができます。
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。
- バケット: 作成するバケットの名前。これはグローバルに一意である必要があり、2つのバケットに同じ名前を付けることはできません。
- CreateBucketConfiguration: バケットの構成情報。
LocationConstraint: バケットを作成するリージョンを指定します。 US East(N. Virginia)Region(us-east-1)がデフォルトのリージョンであり、リージョンが指定されていない場合、バケットがここに作成されます。 - GrantFullControl: バケットに対する読み取り、書き込み、読み取りACP、および書き込みACP権限を被付与者に許可します。
- GrantRead :被付与者がバケット内のオブジェクトを一覧表示できるようにします。
- GrantReadACP: 被付与者がバケットACLを読み取ることを許可します。
- GrantWrite: 被付与者がバケット内のオブジェクトを作成、上書き、および削除できるようにします。
- GrantWriteACP: 被付与者が該当するバケットのACLを作成できるようにします。
- ObjectLockEnabledForBucket: 新しいバケットでS3オブジェクトロックを有効にするかどうかを指定します。
以下は、作成したバケットを削除するためのメソッド構文です。
delete_bucketメソッドのリクエスト構文
response = client.delete_bucket( Bucket='string' )
- バケット: 削除するバケットを指定します。ここで、削除するS3バケットの名前を指定する必要があります。
S3バケットを作成および削除
AWSユーザーのaws_access_key_id_value、aws_secret_access_key_value、リージョンを含む「config.properties」ファイルを作成します。このファイルにキーを追加します。
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メソッドで使用できるさまざまなパラメータを使用してバケットを作成できます。