[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