본문 바로가기
Python

[AWS S3] image python upload 코드

by Guardy 2020. 9. 10.
728x90

AWS S3 사용법과 python code로 업로드하는 방법을 알아보도록 하겠다.

s3 버킷을 새로 만든다.

그 다음 다음과 같이 코드를 작성한다. pip install 

import boto3 
from botocore.exceptions import NoCredentialsError

ACCESS_KEY = 'xxxxxxxxxxxxxxxxxxxx'
SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

def upload_to_aws(local_file, bucket, s3_file):
    s3 = boto3.client('s3', aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY)

    try:
        print(s3.upload_file(local_file, bucket, s3_file))
        return True
    except FileNotFoundError:
        return False
    except NoCredentialsError:
        return False


uploaded = upload_to_aws('file_name', 'bucket_name', 's3_file_name')

access_key와 secret_key는 IAM의 액세스 키 발급을 통해 받을 수 있다.

코드를 실행시키면 upload는 되지만 public 액세스가 안된다. 즉 파일을 올렸는데 다른 사람이 그 파일에 접근 할 수 없다.

따라서 upload 시 자동 public 액세스가 되도록 설정을 해주면 좋다.

설정하는 방법은 간단하다. s3에 들어가서 권한 -> 버킷정책에 들어간다. 그 다음 다음과 같이 입력 후 저장을 한다.

{
    "Version": "2020-09-09",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket-name/*"
        }
    ]
}

저장을 하면 자동적으로 업로드가 될 시, 퍼블릭 액세스가 가능해진다.

이번 글에서는 #AWS S3생성 및 사용법과 #Python으로 S3 upload하는 방법에 대해 알아보았다.

 

728x90

'Python' 카테고리의 다른 글

[Python] Selnium 화면 캡쳐하기  (0) 2021.02.15
쿠팡 Wing Login with python requests  (0) 2020.07.23