아주 간단(?)하다
$ aws configure
AWS Access Key ID [None]:
AWS Secret Access Key ID [None]:
Default region name [None]:
Default output format [None]:
class fileUpload(View):
@login_decorator
def post(self, request):
file = request.FILES.get("image")
s3 = boto3.resource(
"s3",
aws_access_key_id = settings.AWS_ACCESS_KEY_ID,
aws_secret_access_key = settings.AWS_SECRET_ACCESS_KEY
)
file._set_name(str(uuid.uuid4()))
s3.Bucket(settings.AWS_STORAGE_BUCKET_NAME).put_object(
Key = "%s" %(file),
Body = file,
ContentType = "image"
)
file
변수에 담는다.file = request.FILES.get("image")
```
s3 = boto3.resource(
"s3",
aws_access_key_id = settings.AWS_ACCESS_KEY_ID,
aws_secret_access_key = settings.AWS_SECRET_ACCESS_KEY
)
```
boto3 ducument에서 대표적인 접근방식 메소드는 client, resource이다.file._set_name(str(uuid.uuid4()))
s3.Bucket(settings.AWS_STORAGE_BUCKET_NAME)
put_object
접근한 버킷에 저장하는 방법에 대한 메소드 공식문서에서 여러방법들이 나와있다.form-data파일을 받고 boto3로 접근한뒤에 파일명을 uuid로 랜덤하게 바꾼뒤에 접근한 aws의 bucket에 put_object로 key(파일명), body(파일자체)를 저장한다.