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

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

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 전제를 저장하지않아도 되지않을까 합니다

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

 

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 3
© SIRSOFT
현재 페이지 제일 처음으로