본문 바로가기

분류 전체보기170

[API] S3로 파일 업로드하는 API 클라이언트를 통해 사진 같은 파일을 업로드할수있는 API를 만들어보자 먼저 Config 설정을 해야한다. class Config: JWT_SECRET_KEY = 'yh20220621##hello' # 절대 노출시키면 안되는 키 JWT_ACCESS_TOKEN_EXPIRES = False # True로 설정하면 3분의 유효기간이 생긴다. PROPAGATE_EXCEPTIONS = True # JWT가 예외처리를 해주는 옵션 # AWS eyoo1 ACCESS_KEY = '여기에 엑세스 키를 입력' SECRET_ACCESS = '여기에 시크릿 엑세스를 입력' # 버킷 이름과 기본 URL주소 세팅 S3_BUCKET = 'eyoo1-image-test' # 버킷 이름 S3_LOCATION = 'https://eyoo.. 2022. 6. 24.
[API] AWS S3 버킷 만들기 서버에 사진과 동영상과 같은 멀티미디어 파일들은 보통 S3에 따로 보관하고 객체 URL을 통해 사용자가 사진에 접근할수있게 한다. AWS에서 S3 페이지를 방문하여 버킷 만들기를 누르자. 그 후, 버킷 이름과 서버 지역을 선택한다. # 버킷 이름은 고유해야한다. 객체 소유권에서 ACL 활성화됨을 고른다. 퍼블릭 엑세스의 차단을 해제한다. 체크하여 경고를 숙지했다고 한다. 위의 설정에 유의하여 만들었다. # 버킷이 생성된것을 볼수있다. 만들어진 버킷을 선택하여 들어가면 버킷 안에있는 객체를 볼수있다. # 현재는 아무것도 업로드하지 않아서 객체가 없는 상태다. 업로드 버튼을 눌러 사진을 업로드 해보자 구글에서 사진을 다운로드 받아서 드래그 앤 드롭해줬다. 업로드 버튼을 눌러 업로드했다. 버킷에 새 객체가 생.. 2022. 6. 24.
[API] AWS IAM 사용자 설정 AWS에서 제공하는 IAM의 사용자 설정을 시작한다. 먼저 사용자 이름을 정하고 엑세스 유형을 선택한다. # 코드를 통해 엑세스 하기 위해 엑세스 키로 설정한다. 권한을 설정한다. # Administrator Acess를 선택했다. # 다음 설정인 태그설정은 선택사항이다. 검토한 뒤 사용자 만들기를 누른다. 그럼 이제 사용자가 추가된다. # .csv 다운로드를 눌러 키값이 들어있는 csv파일을 저장하자. ※ 절대 잃어버리지 않도록 하자. 2022. 6. 23.
[MySQL] DB에서 데이터 추출하여 csv파일로 저장 MySQL의 테이블을 우클릭 하여 Table Data Export Wizard를 선택한다. 가져올 컬럼들을 선택한다. csv로 저장할때 구분자, 줄바꿈 등 여러 설정을 할수있다. # json으로 저장할수있다. # csv로 저장할때 인코딩에 에러가 난다면 json으로 저장하자. 2022. 6. 23.
[API] 인증토큰 JWT, 로그인과 로그아웃: JWTManager, create_access_token, token_in_blocklist_loader 회원가입하거나 로그인 할때, 유저 정보를 양방향 암호화해서 처리하는 JWT를 사용한다. 관련 웹사이트: https://flask-jwt-extended.readthedocs.io/en/stable/ Flask-JWT-Extended’s Documentation — flask-jwt-extended 4.4.1 documentation flask-jwt-extended.readthedocs.io 먼저 JWT 라이브러리를 다운로드 한다. pip install flask-jwt-extended config.py 파일을 생성하여 Config코드를 작성한다. class Config: JWT_SECRET_KEY = 'yhacademy1029##hello' # 절대 노출시키면 안되는 키 JWT_ACCESS_TOKEN_.. 2022. 6. 20.
[API] 로그인 API: check_password POST 메소드에 select를 사용하여 로그인하는 API를 만들자. # check_password을 사용한다. class UserLoginResource(Resource): def post(self): # 클라이언트로부터 body로 넘어온 데이터를 받는다. data = request.get_json() # { # "email": "abc@naver.com", # "password": "123456" # } try: connection = get_connection() # 이메일로 DB의 데이터를 가져온다. query = '''select * from user where email = %s;''' record = (data['email'], ) cursor = connection.cursor(dictio.. 2022. 6. 20.
[API] 유저정보 저장: 비밀번호 암호화, 이메일 형식 확인, 예외처리 앱을 개발할때 개발자가 사용자들의 비밀번호를 알수없도록 암호화만 가능하게 만들어야 한다. (단방향) 이때 암호화만 하되 복호화는 하지않는것이 hash다. 먼저 사용할 psycopg2-binary와 passlib라이브러리를 설치하자. pip install psycopg2-binary passlib 비밀번호 암호화를 위한 파이썬 파일을 만들어 코드를 작성한다. from passlib.hash import pbkdf2_sha256 # 원문 비밀번호를 암호화 하는 함수 (암호화만 하되 복호화는 하지않는것이 해쉬다.) def hash_password(original_password) : salt = 'yh*hello12' password = original_password + salt password = pbkd.. 2022. 6. 20.
[API] 파이썬에서 MySQL 연결 후 Restful API 생성 DB에서 테이블을 만든다. 레시피 테이블 생성: 유저 테이블 생성: 그 후 계정 만드는 코드를 차례로 입력한다. use mysql; create user 'recipe_user'@'%' identified by 'recipe1234'; grant all on recipe_db.* to 'recipe_user'@'%'; # 유저 이름과 사용할 비밀번호를 설정한 후 다음 코드에서 해당 유저에게 해당 DB의 모든 권한을 부여한다. 작업환경인 비쥬얼 스튜디오 코드(이하 코드)에서 DB와 연결하기 위해 mysql-connector-python를 설치한다. 설치코드: pip install mysql-connector-python 연결을 위한 파이썬 파일을 생성 후 get_connection 함수를 작성한다. imp.. 2022. 6. 17.