AWS의 S3을 생성한 후(참고 : https://dongsu96.tistory.com/131 )
이미지를 내면 AWS의 S3에 업로드하게 하는 API 만들기
-> postman에서 Body의 form-data에 File 형식으로 바꿔서 Key값과 Value(사진)을 세팅해논다.
def post(self) :
file = request.files.get("photo")
if file is None :
return {"error" : "파일을 업로드 하세요."}, 400
# 파일명을 회사의 파일명 정책에 맞게 변경
# 파일명은 유니크 해야 한다.
current_time = datetime.now()
new_file_name = current_time.isoformat().replace(":", "_") + ".jpg"
# 유저가 올린 파일의 이름을 새로운 파일 이름으로 변경
file.filename = new_file_name
# S3에 업로드 하기 위해서는 AWS에서 제공하는 파이썬 라이브러리
# boto3 라이브러리를 이용해야 한다.
# boto3는 AWS의 모든 서비스를 파이썬 코드로 작성할 수 있는 라이브러리다.
s3 = boto3.client("s3", aws_access_key_id = Config.AWS_ACCESS_KEY_ID,
aws_secret_access_key = Config.AWS_SECRET_ACCESS_KEY)
try :
s3.upload_fileobj(file, Config.S3_BUCKET, file.filename,
ExtraArgs = {"ACL" : "public-read",
"ContentType" : "image/jpeg"})
except Exception as e :
print(e)
return {"error" : str(e)}, 500
return {"result" : "success", "imgUrl" : Config.S3_LOCATION + file.filename}, 200
-> vscode에 위 코드 작성 후 실행한다.
-> 완료 후 imgUrl 부분을 복사해서 확인한다.
-> url에 복사해서 쳐도 확인 가능하다.
-> AWS의 S3에 해당 버킷에 들어가도 확인 가능하다.
'Restful API' 카테고리의 다른 글
[Restful API] 이미지와 내용을 포스팅하는 API 만들기 (0) | 2023.12.18 |
---|---|
[Restful API] 사진을 보내면 해당 사진에 어떤 물체가 있는지 알려주는 API 만들기 (Object detection API, Rekognition) (0) | 2023.12.18 |
[Restful API] 네이버 Papago API 사용해보기 (0) | 2023.12.18 |
[Restful API] [Error] Object of type Decimal is not JSON serializable 에러 해결 방법 (0) | 2023.12.12 |
[Restful API] Query String(Query Parameter) 페이징 처리하는 방법 (1) | 2023.12.08 |