Skip to content

플라스크를 이용한 클라우드 웹사이트 제작

Notifications You must be signed in to change notification settings

dlgosla/khuloud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

khuloud

📖 프로젝트 상세

⛅ Khuloud는 경희대학교의 khu + cloud를 합친 용어로, 경희대학교 학생들이 개발한 사용자에게 클라우드 서비스를 제공하는 웹사이트입니다. 기존에 존재하는 클라우드 서비스에서 제공하는 서비스들에 더해 추가적으로 친구를 신청하는 기능, 친구끼리 클릭 한 번으로 파일을 공유할 수 있는 기능, 30일 이상 사용하지 않은 파일은 자동으로 삭제할 수 있는 기능 등을 만들어 편의성을 향상시켰습니다.

📹 시연 화면

1. 회원 가입

가입

회원가입 페이지 입니다.
회원 가입을 완료하면 자동으로 로그인이 되어 개인 클라우드 공간으로 이동하며
비밀번호가 일치하지 않거나 존재하는 아이디일 경우 경고알림을 띄워줍니다.

2. 파일 업로드

업로드

파일 업로드 기능입니다. 로컬에 있는 파일을 업로드 하면 회원과 연결된 S3의 버킷에 파일이 추가됩니다.

3. 파일 다운로드

다운로드

파일 다운로드 기능입니다. Download 버튼을 누르면 s3에 저장된 파일이 로컬로 다운로드 됩니다.

4. 친구 추가

친추

유저의 아이디를 검색해 친구로 추가할 수 있습니다.

5. 친구에게 파일 공유

공유

Share 버튼을 눌러 친구와 파일을 공유합니다.

6. 친구에게 공유받은 파일 다운로드

공유 다운

친구에게 공유받은 파일은 shared files에서 확인할 수 있습니다.

7. 파일 삭제

삭제

드라이브에서 파일을 삭제하면 휴지통으로 이동되고 휴지통에서도 파일을 삭제하면 파일이 영구적으로 삭제됩니다.

8. 자동 삭제

자동삭제

파일이 사용(검색, 다운로드, 상세보기 등)되지 않은 지 30일이상 지났으면 자동으로 파일을 삭제해주는 기능입니다.

9. 파일 복구

복구

휴지통에 있는 파일을 드라이브로 이동합니다.

10. 파일 검색

검색

파일명으로 검색할 수 있습니다.

🛠️ 사용 기술 및 라이브러리

  • python
  • Flask
  • HTML/CSS
  • EC2
  • S3

📱 담당 개발 내용

  • 회원 가입 기능 백엔드 개발

    • 입력된 id가 user DB에 존재하는 지 확인 후 존재하면 경고 메세지 전송
    • 회원가입 완료 시 랜덤한 이름을 가진 S3 버킷을 생성
    • user DB에 회원의 아이디, 비밀번호, 고유 버킷 이름 등의 정보 저장
  • 로그인 기능 백엔드 개발

    • user DB에 저장된 비밀번호를 이용해 비밀번호 일치 여부 판단
  • 파일 업로드 기능 백엔드 개발

    • boto3를 이용해 s3에 파일 업로드 후 butket DB에 유저 별로 업로드된 파일 정보 저장
  • 파일 다운로드 기능 백엔드 개발

    • boto3로 s3에 저장된 파일 경로를 활용해 다운로드 진행
  • 휴지통 기능 백엔드 개발

    • bucket DB에 저장된 해당 유저의 파일 중 선택된 파일 정보를 삭제하고 trash DB에 추가
  • 자동 삭제 기능 백엔드 개발

    • 각 파일 별로 파일이 수정된 날짜를 저장하는 edit_date 필드를 만들고 다운로드, 상세 보기, 검색 등의 행위가 일어날 때 마다 edit_date를 현재 시각으로 갱신
    • 유저가 가지고 있는 파일 중에 edit_date와 현재 시각을 비교해 30일이 지났으면 삭제
  • ec2를 통한 웹사이트 배포

About

플라스크를 이용한 클라우드 웹사이트 제작

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published