본문 바로가기
개발팁

AWS S3 (feat.Python)

by 몸에배인매너 2022. 4. 8.

Amazon S3

client 와 resource 두가지 방식이 있다.

 

* 파일을 업로드 할 때

import boto3

# Set aws credentials 
s3 = boto3.client('s3', aws_access_key_id='[S3 아이디]',
    aws_secret_access_key='[S3 키]')
   
# 로컬의 파일을 찾아 원하는 경로에 업로드
s3.upload_file('[찾는파일경로]', '[S3버킷이름]', '[업로드파일경로]')

 

* 파일을 다운로드 받는 간단한 방법으로 S3를 퍼블릭으로 돌려서 링크주소를 통해 바로 접근이 가능하다.

import boto3

# Set aws credentials 
s3r = boto3.resource('s3', aws_access_key_id='[S3 아이디]',
    aws_secret_access_key='[S3 키값]')

# 파일이름을 통해 불러온 같은 이름의 파일목록과 주소를 붙여준다.
bucket = s3r.Bucket('[S3버킷이름]')
file_list = ['https://[S3버킷이름].s3.amazonaws.com/' + obj.key for obj in bucket.objects.all() if obj.key.find('[파일이름]')>-1]

 

다만, 이경우 S3의 파일 엑세스 권한을 퍼블릭으로 설정해 주어야 한다.

버킷 정책에 붙여넣어준다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::[S3버킷이름]/*"
        }
    ]
}

'개발팁' 카테고리의 다른 글

Nuxt.js 개발 환경 세팅  (0) 2023.01.18
Python 파일 실행파일(.exe) 생성 - pyinstaller  (0) 2023.01.09
MySQL 사용방법 & pymysql (feat.Python)  (0) 2022.04.06
구글 이메일 API  (1) 2022.03.29
Webpack 사용방법  (1) 2022.03.27

댓글