S3
aws에서 제공하는 저장 폴더라고 생각하면 된다.
1.s3 버킷을 만든다
2.이름,리전,액세스를 설정하고 생성한다.
3.파일을 업로드하면 그 파일에 url이 생기는데 파일의 권한을 설정해줘야 url을 오류없이 사용할 수 있다.
권한은 s3권한가서 먼저 설정하고, 업로드된 파일 클릭 후 파일의 권한가서 설정하면 된다.
IAM(identity and access management)
IAM은 권한 관리자라고 생각하면 된다.
사용자를 만들때 개발이 목적이면 프로그래밍방식액세스 체크해야한다.
권한은 기존에 쓰던게 없으면 기존 정책 직접 연결을 눌러 aws에서 정해놓은 권한 중 필요한 것을 골라 추가한다.
액세스 키를 주는데 이는 잘 적어놓는것이 좋다.
aws sdk(soft development kit) 설치
https://awscli.amazonaws.com/AWSCLIV2.msi 입력 후 설치
aws --version -확인
aws configure -설정
aws s3 cp {파일명} s3://{버킷이름} --acl public-read - 업로드
s3는 저장폴더 역할말고도 정적 웹 호스팅 역할도 가능하다.
버킷 -> 속성 -> 정적 웹호스팅 편집 -> 활성화, 정적 웹호스팅 저장
html doc을 업로드 시키고 생성된 url을 주소창에 입력하면 실행이 된다.
그러나 이렇게 하면 돈이 많이 들 수도 있다는 단점이 있다.
boto3를 쓰면 aws와 연동할 수 있다.
import boto3
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
@app.route('/')
def main():
return render_template('index.html')
@app.route('/fileupload', methods=['POST'])
def file_upload():
file = request.files['file']
s3 = boto3.client('s3')
s3.put_object(
ACL="public-read",
Bucket="{버킷이름}",
Body=file,
Key=file.filename,
ContentType=file.content_type)
return jsonify({'result': 'success'})
if __name__ == '__main__':
app.run()
'TIL' 카테고리의 다른 글
18_Step : Array와 LinkedList (0) | 2021.10.21 |
---|---|
17_Step : 알고리즘 문제풀이 (0) | 2021.10.20 |
15_Step : jwt 로그인 & pymongo error (0) | 2021.10.13 |
13_Step : ec2 & filezilla & gabia domain AND ssh 오류 해결! (0) | 2021.10.06 |
12_Step : a-z기초 복습 및 Team project_2차 시작 (0) | 2021.10.05 |