이미지 중복체크는 어떤식으로 하면 좋을까요?

이미지 중복체크는 어떤식으로 하면 좋을까요?

QA

이미지 중복체크는 어떤식으로 하면 좋을까요?

답변 3

본문

이미지를 첨부하는 서비스가 있습니다.

동일 이미지를 첨부하는 경우가 있어 아래방법을 생각했지만. (이미지 중복방지)

 

검색에 있어 큰 문제가 될듯합니다.  혹시나 해서 아래방식으로 할 경우

어떤 문제가 있을지 궁금합니다.

 

 

첨부파일을 등록해서 업로드할때(이미지)  

바이너리 타입으로 바꿔 텍스트 형태로 저장합니다.

이 형태는 data:image/jpeg;base64,asdfugsdfugsdafsdfasdfsdfasdfsfasifhasdfsdfsdfasdfasdf....

 형태로 DB textarea 형태로 저장합니다. ( 많은양의 텍스트입니다. )

 

이 긴 텍스트형태를 검색을 해도 되는지요?

즉, 위 형태를 DB에 저장해두고

추후에  사용자가 동일 이미지를 업로드시  바이너리 타입으로 변환한 후

DB에서 해당 텍스트가 있는지 찾는거죠..

 

짧은 텍스트가 아닌 이런 긴 텍스트형태를 검색으로 쓰면 어떻게 되나요?

혹은 이런경우 우회해서 다른방법으로 체크하는 방법이 있는지요?

  

이 질문에 댓글 쓰기 :

답변 3

파일의 바이너리 스트링이 검색을 주 용도로 사용되지 않는 이상

파일 체크섬 + VARCHAR UNIQUE 컬럼 + INSERT 시도, Duplicate 에러인 경우 중복 처리

정도가 무난할것 같습니다.

 

파일 체크섬의 경우 다음 함수들중 하나를 사용해볼수 있습니다.

https://www.php.net/manual/en/function.md5-file.php

https://www.php.net/manual/en/function.sha1-file.php

https://www.php.net/manual/en/function.hash-file.php

이 긴 텍스트형태를 검색을 해도 되는지요?

즉, 위 형태를 DB에 저장해두고

<=== base64 encode 전체를 디비에 저장할 것이 아니라 몇개의 부분으로 잘라서(substr)

예를들어 처음 200바이트 중간 부분 200바이트, 끝 부분 200바이트

이렇게 일부만 저장하고 비교시 일부분만 비교하는 로직을 만들면

base64 encode된 어마어마한 text 전제를 저장하지않아도 되지않을까 합니다

(사용할 이미지는 화일로 저장)

 

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 773
© SIRSOFT
현재 페이지 제일 처음으로