지난번에는 S3를 이용해 이미지 한개를 업로드 하는걸 성공했다.
소셜활동을 하면서 이미지를 두개 이상올리는 기능을 참 많이 봤는데 나도 구현해보자!!
먼저 처음 시도한 것은 postman으로 계속 test하면서 form-data의 key에 또다른 'filename'이라는 키값을 지정한 것이었다.
결과는 실패.
두개의 사진 중 두번째로 들어간 7clock.jpeg
만 업로드 되었다.
위 문제를 해결하기 위해 가장 먼저 떠오른 것은 해당 값을 list로 받는것. list속 객체 형태로 받아야 할것 같다.
먼저 처음 들어온 이미지의 key이름이 filename이었는데 이를 filename1로 변경하고 이후 하나씩 늘어날때마다 숫자도 늘려주도록 해보자.
=> 이렇게 하는게 프론트에서도 기능이 될지 모르겠다! 이미지를 업로드할때마다 숫자가 하나씩 증가되게 키값을 설정하는게 되지..않을까...?
일단 백엔드 로직에서 이를 해결하기 위해선
[f'filename{i} for i in range(1, len(request.FILES)+1)']
대충~~ 이런식으로 진행해야 될것 같다.
for i in range (1, len(request.FILES)+1):
file = request.FILES[f'filename{i}']
url_generator = str(uuid.uuid4())
s3_client.upload_fileobj(
file,
# 이하 생략
먼저 업로드된 이미지가 2개일때 request.FILES
로 들어온 값을 확인해 보았다.
성공...😳
RDS와 S3를 모두 확인해 보았다.
굿!
반복문을 이용해 하나씩 순차적으로 저장해 주는 방법을 택했는데 다행히 잘 작동하였다.
혹시 이후에 반복문 말고 같은 키값으로 저장하는 방법을 알게된다면 내용을 추가하겠다!
혹시 깃허브 주소좀 알려주실 수 있으신가요?