from flask import request
from flask_restful import Resource
import boto3
from config import Config#엑세스키,시크릿키,버킷이름이 들어있는 py파일
class LableResource(Resource):
def get(self):
img_url = request.args.get('img_url')
img_url_list = img_url.split('/')
photo = img_url_list[-1] #url중 사진 이름만 가져오기 위한 작업
bucket=Config.S3_BUCKET
client=boto3.client('rekognition', 'us-east-1',#S3활성화 지역
aws_access_key_id = Config.ACCESS_KEY,
aws_secret_access_key = Config.SECRET_ACCESS)#boto3 로부터 클라이언트를 받음
response = client.detect_labels(Image={'S3Object':{'Bucket':bucket,'Name':photo}},
MaxLabels=10)
print(response['Labels'])
result = []
for label in response['Labels']:
label_dict = {}
label_dict['Name'] = label['Name']
label_dict['Confidence'] = label['Confidence']
result.append(label_dict)
return{'result':result}
위 클래스를 API 경로 리소스를 해줍니다.
api.add_resource(LableResource, '/api/v1/labling')
import와 환경변수 세팅은 생략하겠습니다.
해당앱을 포스트맨에서 실행해보면
테스트 사진
'AWS' 카테고리의 다른 글
AWS Lambda서버, serverless로 python flask API 서비스 만들기(internal server error 해결 방법, s3에 올린 사진이 깨질 경우) (0) | 2022.03.04 |
---|---|
AWS Free Tier 설치하기 (0) | 2022.02.04 |
AWS의 rekognition API 테스트 코드 실행하기 (0) | 2022.01.14 |
AWS에 Numpy, Pandas Layer 만들기(AWS 레이어 만들기) (0) | 2022.01.12 |