고졸 스프링 국비들었던 국비충인데
집에서 개인적으로 노드 공부하면서 자체 중복이미지 처리하는거 만드러봄
아마추어에다 진짜 기능 구상해논거 동작만하게한 수준이라 코드 더러울수도 잏읍니다
이미지 업로드 요청 처리하는 부분
1. 이미지 업로드
2. 업로드된 이미지가 이미 업로드된적이 있나 확인하고
3. 업로드된 여부에따라 구분해서 리스폰스 하는방식임
중간에 fileProc이란 중복처리하는 함수임
multer로 업로드한 파일 읽으려면 완전히 서버에 업로드가 완료되야 해서
일단은 먼저 업로드하고 fs로 읽은다음 해쉬로 바꿔서
db에 이미 저장된 해쉬가 있나 없나 비교하고 이미 업로드된 사진이면
방금 업로드된 사진은 삭제해버리고 원래 있던 이미지를 대신 응답합니다.....
이건 db에 검색하는 메소드 입니다.....
실제 동작 모습잎니다......
위 두사진은 서버에 처음 올리는 사진입니다
파일의 원본이름과 해쉬값은 db에 저장댑니다.....
그리고 이건 이미 업로드된적이 있는 이미지를 올렸을때 모습입나다....
새로올린 이미지는 123.jpg로 서버에 올라왔지만 리스폰스값에서 실제로 가리키고 있는건
120.jpg로 이미 업로드됬던 사진을 갈키고 있읍니다......
그리고 123.jpg로 업로드된 사진은 폴더에서 삭제대고 업습니다....
아직 부족한부븐이 마는데 문제는 이미지를 업로드할때마다
저 구문이 항상 실행댄다는 점입니다....
글고 디시처럼 하루에 수만건의 이메지가 올라는 상황에서 저릏게 일일이 검사를한다면
응답시간도 장담을 못하는점임니다
아직은 마니 조잡할지라도 직접 생각하고 구상한걸 만드러본거에 큰으미가 잇읍니다.....
해당 댓글은 삭제되었습니다.
이미지 버퍼를 해쉬로 바꾸는거라 가튼파일이라면 다 똑같을겁니다
짤ㅋㅋㅋㅋㅋㅋ 근데 해시충돌나면 어케할거임
나같으면 일단 중복되든 안되든 그냥 db에 올린다음에 새벽같은 이용자 적은 시간에 그날 올린것 중 중복되는 사진만 찾아서 지울듯
그건 제 수준에선 해결할수있는 문제가 아니네여;
샤256 돌리는데 충돌날리가ㅋㅋㅋ
구리네
고생 많으셨습니다
fileProc에 파일 읽기 에러 있으면 reject 되지 않는 문제가 있음
내장된 fs 말고 fs-extra 쓰면 프로미스 지원하는 readFile 쓸 수 있고
보통 이미지는 AWS S3 같은곳에 올리는데 체크섬을 etag같은 필드로 볼 수 있게 해놔서 직접 할 필요는 보통 없고
조언 감사햅니다.... fs 쓸때마다 프로미스 쓰는거 귀찮았는데 그런 편한게 있었네