#aws는 boto3 라이브러리를 통해 연결 할 수 있다.
###fileKey = '' 파일을 업로드 하고 업로드 한 파일을 버킷내에서 유일하게 지정하는 키(sha1) 저장
###fileName = '' 파일의 실제 이름. 파일의 위치까지 지정해도 상관업다. 스플릿 해서 잘라 사용할꺼니깐
내 버킷 이름
###s3 = boto3.resource('s3') 전체 함수에서 사용할 컨트롤 객체
###def getHash(string) 파일명 + 현재시간 을 sha1코드로 변환 반환한 sha1값을 파일의 키값으로 사용
###def getMetadate(fileKeyGet) key값을 입력하면 그 키값에 있는 모든 정보들을 가져온다(메타데이터, 파일 생성날자, 생성한 아이디, ...) 이중에 원하는 값만 잘라서 사용하면 된다 파일 다운로드 함수에서는 실제 파일 이름만 필요하기 떄문에 메타데이터에 저장된 파일이름만 잘라서 사용한다.
###def upload(filePathUp) 파일의 이름(실제 위치한 주소가 있어도 상관없다)를 입력하면 파일을 s3에 올리고 파일의 키값을 반환한다 이 키값을 잃어버리면 파일을 찾기 어려워지니 꼭 파일의 키값을 변수에 잘 저장하자 업로드시 필요한 값들 - 파일 이름, 파일 메타데이터, 해쉬 매핑된 키 값
메타데이터들 - 미완성
업로드 할 때 사용자 정의 메타데이터에 넣어야 할 값들 - 사용자 정의 s3 메타 데이터
파일 키는 어떻게 지정해야 중복없이 매핑될까? - 파일 제목 + 현재 시간(초단위까지) SHA1 사용
- --------------------------------------------메다데이터
- 파일 크기 - response에 내장 메타데이터 이용
- 파일 업로드 날자 - response에 내장 메타데이터 이용
- --------------------------------------------기본 내장 메타데이터
- 파일 이름 - response에 내장 메타데이터 이용
- 파일 유형 - s3 object에 업로드 시 메타데이터에삽입
- 파일 다운로드 횟수 - reponse에 내장 메타데이터 이용
- 파일 안전한지 아닌지 - reponse에 내장 메다데이터 이용
--------------------------------------------사용자 정의 메타데이터 - 업로드 시 내가 직접 넣어줘야 한다.
###def download(fileKeyDown)
key값을 입력하면 key값에 맞는 파일을 다운받는다
###def deleteObject(fileKeyDelete)
key값에 맞는 파일을 s3버킷내에서 삭제한다. 되돌릴 수 없다
? jinho : 되돌릴 수 있다면 기능을 구현해보는것도 좋을듯 싶다
###def getList()
버킷 내에 있는 모든 파일의 정보들을 읽어들이는 함수
홈페이지에 필요한 기능이 있다면 받은 정보들(dict Type)을 잘라서 사용하면된다
