[Cloud]/[AWS]
[AWS] AWS s3 버킷에 원격으로 파일 업로드 후 읽기
마린독
2023. 10. 11. 17:25
728x90
aws 콘솔을 사용하지 않고 s3에 파일을 원격으로 업로드 할 수 있습니다.
저는 vscode를 이용했습니다.
import boto3
from botocore.exceptions import NoCredentialsError
# AWS 자격 증명 및 리전 설정
aws_access_key = 'YOUR_LOCAL_FILE_PATH'
aws_secret_key = 'YOUR_S3_BUCKET_NAME'
region_name = 'YOUR_AWS_REGION'
# S3 클라이언트 생성
s3_client = boto3.client('s3', aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key, region_name=region_name)
# 업로드할 로컬 파일 경로와 S3 버킷 이름 설정
local_file_path = 'LOCAL_FILE_PATH' # 로컬 파일 경로
bucket_name = 'YOUR_S3_BUCKET_NAME' # S3 버킷 이름
s3_file_name = 'S3_FILE_NAME' # S3에 저장될 파일 이름
# 업로드할 파일의 Content-Type 지정 (다른 타입은 아래에 첨부)
content_type = 'image/jpeg'
try:
# S3 버킷으로 파일 업로드
s3_client.upload_file(local_file_path, bucket_name, s3_file_name,
ExtraArgs={'ContentType': content_type, 'ACL': 'public-read'})
print(f'파일 "{local_file_path}"가 S3 버킷 "{bucket_name}"으로 성공적으로 업로드되었습니다.')
except FileNotFoundError:
print(f'로컬 파일 "{local_file_path}"를 찾을 수 없습니다.')
except NoCredentialsError:
print('AWS 자격 증명이 올바르지 않습니다.')
except Exception as e:
print(f'파일 업로드 중 오류가 발생했습니다: {e}')
저는 이미지 파일을 올렸습니다.
content_type은 아래에서 찾아서 바꿔주시면 됩니다.
일반 텍스트: text/plain
HTML 파일: text/html
CSS 파일: text/css
JavaScript 파일: application/javascript
JSON 파일: application/json
JPEG 이미지: image/jpeg
PNG 이미지: image/png
GIF 이미지: image/gif
BMP 이미지: image/bmp
SVG 이미지: image/svg+xml
MP3 오디오: audio/mpeg
WAV 오디오: audio/wav
OGG 오디오: audio/ogg
MP4 비디오: video/mp4
WebM 비디오: video/webm
PDF 문서: application/pdf
워드 문서: application/msword
엑셀 문서: application/vnd.ms-excel
PowerPoint 문서: application/vnd.ms-powerpoint
ZIP 아카이브: application/zip
728x90