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 |
댓글