웹사이트 검색

AWS에서 Python Boto3를 사용하여 S3 버킷을 생성하는 방법


이 기사에서는 Python Boto3 라이브러리를 사용하여 S3 버킷을 생성하는 방법을 배웁니다. 생성한 버킷을 삭제하는 단계도 볼 수 있습니다. \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를 사용 중인 경우 다음 명령을 실행하여 먼저 로컬 리포지토리를 업데이트합니다.

sudo 적절한 업데이트

pip를 설치하려면 다음 명령을 사용하십시오.

sudo apt install python-pip

설치된 Pip의 버전을 확인하려면 다음 명령을 실행합니다.

핍 --버전

Python과 pip가 있으면 Boto3를 설치할 수 있습니다.

Boto3 설치는 매우 간단하고 직관적입니다. Boto3를 설치하려면 다음 명령을 사용하십시오.

pip install boto3

Boto3가 설치되어 있고 버전이 있는지 확인하려면 다음 명령을 실행합니다.

핍 쇼 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
)

  1. ACL: 버킷에 적용할 미리 준비된 ACL입니다.
  2. 버킷: 생성할 버킷의 이름입니다. 이것은 전역적으로 고유해야 하며 2개의 버킷이 동일한 이름을 가질 수 없습니다.
  3. CreateBucketConfiguration: 버킷에 대한 구성 정보입니다.
    LocationConstraint: 버킷을 만들려는 리전을 지정합니다. 미국 동부(버지니아 북부) 리전(us-east-1)이 기본 리전이며 리전을 지정하지 않으면 버킷이 생성됩니다.
  4. GrantFullControl: 수여자에게 버킷에 대한 읽기, 쓰기, 읽기 ACP 및 쓰기 ACP 권한을 허용합니다.
  5. GrantRead: 수혜자가 버킷의 개체를 나열하도록 허용합니다.
  6. GrantReadACP: 수혜자가 버킷 ACL을 읽을 수 있도록 허용합니다.
  7. GrantWrite: 수혜자가 버킷의 모든 객체를 생성, 덮어쓰기 및 삭제할 수 있도록 허용합니다.
  8. GrantWriteACP: 수혜자가 해당 버킷에 대한 ACL을 쓸 수 있도록 허용합니다.
  9. ObjectLockEnabledForBucket: 새 버킷에 대해 S3 객체 잠금을 활성화할지 여부를 지정합니다.

다음은 생성한 버킷을 삭제하는 메서드 구문입니다.

delete_bucket 메서드의 요청 구문

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

  1. 버킷: 삭제할 버킷을 지정합니다. 삭제할 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 삭제-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 메서드에서 사용할 수 있는 다양한 매개변수를 사용하여 버킷을 만들 수 있습니다.